2.1 Numpy数据的维度

1.维度:一组数据的组织形式
一维数据—列表和集合类型
在这里插入图片描述
2.列表与数组
相同点:都是一组数据的有序结构
区别:列表的数据类型可不同;而数组的数据类型相同。

3.二维数据----列表
由多个一维数据构成,是一维数据的组合形式。

4.多维数据----列表
由一维或二维数据在新维度上扩展形成。

5.高维数据(键值对组织起来)—字典或数据表示格式
在这里插入图片描述

2.2Numpy的数组对象ndarray

一、Numpy是一个开源的Python科学计算基础库。
1.一个强大的N维数组对象ndarray
2.广播功能函数
3.整合C/C++/Fortran代码的工具
4.线性代数、傅里叶变换、随机生成树等功能

Tip:Numpy是SciPy、Pandas等数据处理或科学计算库的基础

二、Numpy的引用
import numpy as np

三、为什么需要额外的数据类型
eg.计算A2+B3
①用Python写

def pySum():
    a=[0,1,2,3,4]
    b=[9,8,7,6,5]
    c=[]
    
    //注意此处
    for i in range(len(a)):
        c.append(a[i]**2+b[i]**3)
    print(c)
    return c


sum=pySum()
print(sum)

②引用Numpy后

import numpy as np

def npSum():
    a=np.array([0,1,2,3,4])
    b=np.array([9,8,7,6,5])
//注意对比
    c=a**2+b**3
    return c

print(npSum())

运行结果的对比:
在这里插入图片描述
后者,也就是引用np.array()的代码结果 ,没有逗号。

①数组对象可以去掉元素间运算所需的循环,使一维象类更像单个数据
②设置专门的数组对象,经优化后,可以提升这类应用的运算速度。

Tip:其实Numpy的底层是由C语言实现的

四、N维数组对象:ndarray

ndarray是一个多维数组对象,由两部分组成:
实际的数据+描述这些数据的元数据(数据维度、数据类型)

ndarray数组要求:
①所有元素类型相同
②数组下边从0开始

五、实例

import numpy as np

a=np.array([[0,1,2,3,4],[9,8,7,6,5]])

print(a)

1.ndarray在程序中的别名是array
2.np.array()输出成[…]形式,元素由空格分隔
轴(axis): 保存数据的维度 秩(rank):轴的数量
可参考:https://blog.csdn.net/weixin_40974922/article/details/93496508
在这里插入图片描述

六、ndarray对象的属性

属性 说明
.ndim 秩,即轴的数量或维度的数量
.shape ndarray对象的尺度,对于矩阵,n行m列
.size ndarray对象元素的个数,相当于.shape中n*m的值
.dtype ndarray对象的元素类型
.itemsize ndarray对象中每个元素的大小,以字节为单位

例子:

import numpy as np
a=np.array([[0,1,2,3,4],[9,8,7,6,5]])

print(a.ndim)
print(a.shape)
print(a.size)
print(a.dtype)
print(a.itemsize)

在这里插入图片描述
七、ndarray的元素类型

数据类型 说明
bool 布尔类型,True or False
intc 与C语言的int类型一致,一般是int32或int64
intp 用于索引的整数,与C语言中ssize_t一致,int32或int64,具体与计算机有关
int8 字节长度的整数,取值:[-128,127]
int16 16位长度的整数,取值:[-32768,32767]
int32 32位长度的整数,取值:[-231,231-1]
int64 64位长度的整数,取值:[-263,263-1]
uint8 8位无符号的整数,取值:[0,255]
uint16 16位无符号的整数,取值[0,65535]
uint32 32位无符号的整数,取值[0,232-1]
uint64 64位无符号的整数,取值[0,264-1]
float16 16位精度浮点数:1位符号位,5位指数,10位尾数
float32 32位精度浮点数:1位符号位,8位指数,23位尾数
float64 64位精度浮点数:1位符号位,11位指数,52位尾数
complex64 复数类型,实部与虚部都是32位浮点数
complex128 复数类型,实部与虚部都是64位浮点数

八、为何有这么多数据类型?

对比:Python语法支持整数、浮点数和复数三种类型
1.科学计算涉及数据较多,对存储和性能都有较高要求
2.数据类型的精准定义,有助于Numpy合理使用存储空间并优化性能
3.对元素类型的精准定义,有助于程序员对程序规模的合理评估

实例
在这里插入图片描述
1.ndarray可以由非同质对象组成
2.非同质ndarray元素为对象类型(object)
3.非同质ndarray对象无法有效发挥,尽量避免使用

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐