在菜鸟教程学习Numpy,总结成笔记供日后复习,如有错误望不吝赐教
NumPy 最重要的一个特点是其 N 维数组对象 ndarray,ndarray 中的每个元素在内存中都有相同存储大小的区域,往往用来存放同类型的数据。
那么如何创建一个Ndarray对象?
numpy.array(
object, #数组或者嵌套的数列
dtype = None, #选择object的数据类型
copy = True, #对象是否需要复制
order = None, #排列方式:C行方向、F列方向、A任意方向(默认)
subok = False, #默认返回一个与基类类型一致的数组
ndmin = 0 #制定生成数组的最小维度
)
#例如
import numpy as np
a = np.array([1,2,3],dtype = complex)
b = np.array([1,2,3],ndmin = 2)
#a:[1+0.0j, 2+0.0j, 3+0.0j]
#b:[[1,2,3]]
dtype的常见种类以及构建
bool_(b) | int8/16/32/64(i1/2/4/8) | uint8/16/32/64(u2/4/8) | float16/32/64(f2/4/8) | complex64/128(c8/16) | S_ |
---|---|---|---|---|---|
布尔型True或False | 带符号8/16/32/64位整数 | 无符号8/16/32/64位整数 | 半/单/双精度浮点数 | 双32/64位浮点数复数 | 字符串 |
‘<’:小端法,最低位存最小值
‘>’:大端法,最低位存最大值
下面举几个结构化数据类型的例子:
import numpy as np
dt1 = np.dtype('<i4') #dt1 = int32
a = np.array([10,20,30], dtype = int8) #a = [10,20,30]
相关属性
属性 | 概念 |
---|---|
ndarray.ndim | 秩,即数组维数 |
ndarray.shape | 对数组来说意味着维数,对于矩阵来说,为n行m列(n,m) |
ndarray.size | 数组的元素总个数,矩阵相当于是n*m |
ndarray.dtype | 元素类型 |
ndarray.itemsize | 每个元素的大小,以字节为单位 |
ndarray.flags | 数组对象的内存信息 |
ndarray.real | 元素实部 |
ndarray.imag | 元素虚部 |
ndarray.data | 实际数组元素的缓冲区 |