Numpy 数组要比 Python 数组快
5 - 00000101 binary - numpy int32
python 提供的内置对象 List , 在 numpy 使用二进制来保存 array。而在 python 的 list 数组对象保存很多额外的信息,例如大小(size),类型(object type) 等信息,而且因为 list 支持动态对象,也就是类似弱类型语言,推断 list 中元素类型也耗时,而在 numpy 用更少的内存空间来存储数据,而且无需检查数据类型。在 numpy 用连续内存地址来保存数据。
创建数组
a = np.array([1,2,3])
print(a)
b = np.array([[9.0,8.0,7.0],[6.0,5.0,4.0]])
print(b)
获取数组维度
print(a.ndim)
print(b.ndim)
print(b.shape)
获取类型
print(a.dtype)
创建数组指定数据类型
a = np.array([1,2,3],dtype='int16')
print(a.dtype)
获取数组元素大小(字节数)
print(a.itemsize)
print(a.size)
print(a.size * a.itemsize)
print(a.nbytes)
更改数据
a = np.array([[1,2,3,4,5,6],[7,8,9,10,11,12]])
print(a)
print(a.shape)
通过行号和列号访问数据
print(a[1,5])
print(a[1,-1])
获取特定行
print(a[0,:])
获取特定列
print(a[:,2])
获取数组 [startindex:endindex:stepsize]
print(a[0,1:5])
print(a[0,1:-1:2])
更改数据
a[1,5] = 20
print(a)
a[:,2] = 5
print(a)
a[:,2] = [1,2]
print(a)
b = np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
print(b)
指定特定的元素
print(b[0,1,0])
print(b[:,1,:])
print(b[:,0,0])
b[:,1,:] = [[7,7],[8,8]]
print(b)
创建特定数组
- zeros 创建元素为 0 的数组
print(np.zeros(5))
print(np.zeros((2,2,3)))
- ones 方法创建 1 数组
print(np.ones((3,3,2)))
使用 full 填充元素创建数组
print(np.full((2,2),6))
full_like 创建数组
a = np.array([[1,2,3,4,5,6],[7,8,9,10,11,12]])
print(np.full_like(a,2) )
print(np.random.rand(3,2))