X=np.array(list/tuple)
X=np.array(list/tuple,dtype=np.float32)
当np.array()不指定dtype时,numpy将根据数据情况关联一个dtype的类型
import numpy as np x = [0, 1, 2, 3, 6] a=np.array(x) print(a) [0 1 2 3 6]
import numpy as np y = (4, 5, 6, 8, 5) a=np.array(y) print(a) [4 5 6 8 5]
import numpy as np x = [0, 1, 2, 3, 6] y = (4, 5, 6, 8, 5) a=np.array([x,y]) print(a) [[0 1 2 3 6] [4 5 6 8 5]]
import numpy as np a=np.arange(10) print(a) [0 1 2 3 4 5 6 7 8 9]
import numpy as np a=np.ones((2, 3)) print(a) [[1. 1. 1.] [1. 1. 1.]] import numpy as np a=np.ones((2, 3),dtype=np.int32) #元素类型为int32 print(a) [[1 1 1] [1 1 1]]
import numpy as np a=np.zeros((3, 3)) print(a) [[0. 0. 0.] [0. 0. 0.] [0. 0. 0.]]
import numpy as np a=np.full((3, 3),5) print(a) [[5 5 5] [5 5 5] [5 5 5]] import numpy as np a=np.full((3,2,5),7) print(a) [[[7 7 7 7 7] [7 7 7 7 7]] [[7 7 7 7 7] [7 7 7 7 7]] [[7 7 7 7 7] [7 7 7 7 7]]] print(a.shape) (3, 2, 5)
import numpy as np a=np.eye(4) print(a) [[1. 0. 0. 0.] [0. 1. 0. 0.] [0. 0. 1. 0.] [0. 0. 0. 1.]]
np.ones_like(a) 根据数组a的形状生成一个全是1的数组
np.zeros_like(a) 根据数组a的形状生成一个全是0的数组
np.full_like(a,val) 根据数组a的形状生成一个数组,每个元素值都是val
import numpy as np a=np.full((3,5),7) print(a) [[7 7 7 7 7] [7 7 7 7 7] [7 7 7 7 7]] like1=np.ones_like(a) print(like1) [[1 1 1 1 1] [1 1 1 1 1] [1 1 1 1 1]] like2=np.zeros_like(a) print(like2) [[0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0]] like3=np.full_like(a,3) print(like3) [[3 3 3 3 3] [3 3 3 3 3] [3 3 3 3 3]]
import numpy as np a=np.linspace(0,10,5) #0到10之间平均填充5个数 print(a) [ 0. 2.5 5. 7.5 10. ] b=np.linspace(5,20,5) print(b) [ 5. 8.75 12.5 16.25 20. ] c=np.concatenate((a,b)) print(c) [ 0. 2.5 5. 7.5 10. 5. 8.75 12.5 16.25 20. ]
方法 说明
.reshape(shape) 不改变数组元素,返回一个shape形状的数据,原数组不变
.resize(shape) 与.reshape()功能一致,但修改原数组
.swapaxes(ax1,ax2) 将数据n个维度进行调换
.flatten() 对数组进行将维,返回折叠后的一维数组,原数组不变
import numpy as np a=np.ones((2,3,4),dtype=np.int32) print(a) [[[1 1 1 1] [1 1 1 1] [1 1 1 1]] [[1 1 1 1] [1 1 1 1] [1 1 1 1]]] b=a.reshape(4,6) #原数组没有改变,改变形状后的数组赋值到b print(b) [[1 1 1 1 1 1] [1 1 1 1 1 1] [1 1 1 1 1 1] [1 1 1 1 1 1]] print(a) # 原数组没有改变 [[[1 1 1 1] [1 1 1 1] [1 1 1 1]] [[1 1 1 1] [1 1 1 1] [1 1 1 1]]] c=a.resize(3,8) #改变了原数组的形状,改变后的数组没有赋值到c print(a) #原来的数组被改变了 [[1 1 1 1 1 1 1 1] [1 1 1 1 1 1 1 1] [1 1 1 1 1 1 1 1]] print(c) #数组c没有被赋值,还是空的 None import numpy as np a=np.ones((2,2,3),dtype=np.int32) print(a) #原数组 [[[1 1 1] [1 1 1]] [[1 1 1] [1 1 1]]] b=a.flatten() #被折叠后赋值给b print(b) #被折叠成一个一维数组,元素个数不变 [1 1 1 1 1 1 1 1 1 1 1 1] print(a) #原数组没有被改变 [[[1 1 1] [1 1 1]] [[1 1 1] [1 1 1]]]
new_a=a.astype(new_type)
astype()方法一定会创建新的数组(将原始数据的一个拷贝),即使两个类型一致。
import numpy as np a=np.ones((3,4),dtype=np.int) print(a) #原数组 整数 [[1 1 1 1] [1 1 1 1] [1 1 1 1]] b=a.astype(np.float) #将数组元素的类型改变为浮点型 print(b) #改变类型后的数组赋值到b [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]] print(a) #元数组a的类型没有被改变 [[1 1 1 1] [1 1 1 1] [1 1 1 1]]
ls=a.tolist() import numpy as np x1=np.array([1, 2, 3]) x2=x1+3 x3=x1+6 a=np.array((x1,x2,x3)) print(a) #原数组 [[1 2 3] [4 5 6] [7 8 9]] b=a.tolist() #将数组转化为列表 print(b) #转化后的赋值给b [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print(a) #原数组没有发生改变 [[1 2 3] [4 5 6] [7 8 9]]