创建数组 | #指定数据类型
c = np.array( [[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]], dtype=np.float );
#arange 创建一维数组,注意:不包括终值
array_1 = np.arange( 0, 1, 0.1 );
# (等差数列) 默认包括终值,endpoint = False 不包括终值
array_2 = np.linspace( 0, 1, 10 );
# (等比数列)
array_3 = np.logspace( 0, 2, 20 );
#使用方法生成
def func_1(i):
return i % 4 + 1;
# 第一个是 方法名, 数组长度
np.fromfunction( func_1, ( 9,9 ) ); # 九九乘法表 |
多维数组生成 | #多维数组生成
# reshape( 列, 行 )[正负代表方向]
array_d = np.arange(0, 60, 10).reshape(-1, 1) + np.arange(0, 6);
array_d[ 2::2, 2::2 ] # array_d[ 列, 行 ]的取值范围
array_d[(0,1,2,3,4),(1,2,3,4,5)]
#结构数组
persontype = np.dtype({ 'names':['name', 'age', 'weight'], 'formats':['S32','i', 'f']})
a = np.array([("Zhang", 32, 75.5), ("Wang", 24, 65.2)], dtype=persontype);
# 结果 a.dtype => dtype([('name', '|S32'), ('age', '<i4'), ('weight', '<f4')])
# 注意元素的值看上去像是组元,实际上它是一个结构
a[0] # ('Zhang', 32, 75.5)
a[0].dtype # dtype([('name', '|S32'), ('age', '<i4'), ('weight', '<f4')])
# a[0]是一个结构元素,它和数组a共享内存数据
c = a[1]
c["name"] = "Li"
a[1]["name"] # "Li"
#二维数组变一维数组
a.ravel() |