一、方式一:array函数创建数组最简单的办法是array函数。它接收一切序列型的对象(包括其他数组),然后产生一个新的ndarray对象。【例1】 如果没有说明,array()会尝试为新建的这个数组推断出一个较为合适的数据类型。 np.array(["a", "b", "c"])
注意: (1) 数据类型可以显示地指定。 np.array([1,2,4],dtype="float32") #【例2】
(2) 嵌套序列将会被转换为一个多维数组。 np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) //使用列表生成二维数组。序列包含序列转化为二维数组。【例3】
np.array([[[1,2]], [[3,4]], [[5,6]]]) //创建3*1*2的三维数组。序列包含序列包含序列转化为三维数组。【例4】
例1:
结果:
例2: 结果:
例3: 结果:
二、方式二:固定元素(1)创建全0数组 np.zeros(6) //创建一个长度为6的,元素全为0的一维数组。默认创建数组类型是float64。【例1】 np.zeros((2,3), dtype=int) //创建一个2行3列的二维数组,数组元素全为0。【例1】
(2)创建全1数组 np.ones(5) //创建一个长度为5的,元素全为1的一维数组。默认创建数组类型是float64。 np.ones((2,3)) //创建一个2行3列的二维数组,元素全为1。
(3)创建特定值的数组 np.full((3,5), 8.8) #创建一个3*5的数组,值都为8.8
(4)创建空数组 np.empty(5) //创建一个长为5,未初始化的一维数组。注意返回的不是全零数组。
(5)创建单位矩阵 np.eye(3) #创建3*3的单位矩阵。
例1:
结果:
三、方式三:数列
(1)创建一个线性序列数组 np.arange(1, 15, 2) #即[1, 15),步长为2。
(2) 等差数列数组 np.linspace(0,10,6) #从0到10(包含10),生成6个数的等差数列。即[0,2,4,6,8,10]。
(3)创建一个等比数列数组 np.logspace(0, 9, 10) #含有10个元素的数组。形成从10^0 ~10^9的等比数列。【例1】
(4)创建网格数组 X,Y=np.meshgrid(x,y) //生成网格数据。【例2】 x,y=np.mgrid[1:5:1,0:1:0.1] //生成网格数据。【例3】
例1:
结果:
例2:
运行结果: [0. 0.25 0.5 0.75 1. ] #x
例3:
运行结果:
四、方式四:随机函数
(1)随机小数 np.random.random((3, 3)) #创建一个3*3的,每一个数是[0,1)范围的随机数的数组。【例1】
(2) 随机整数 np.random.randint(0, 10 , (3,3)) #3*3大小,每个元素从[0, 10)随机选取。
(3)正态分布 np.random.normal(0, 1, (3,3)) #均值为0, 标准差为1,正态分布的随机数构成的数组。
(4)随机重排列 a = np.array([10, 20, 30, 40]) np.random.permutation(a) #根据数组a,产生一个新的数组。元素是a的随机重排列。a不变。【例2】
(5)打乱数组 a = np.array([10,20,30,40]) np.random.shuffle(a) #a会发生改变。
(6)采样 a = np.arrange(10, 25, dtype=float) np.random.choice(a, size=(3,4)) #从a中采12个,然后按照3*4返回。【例3】
(7) 随机数种子 np.random.seed(123) #我们说这些都是伪随机数,是因为它们都是通过算法基于随机数生成器种子,在确定性的 条件下生成的。可以设置种子,使得产生相同的随机数。【例4】
例1:
结果:
例2:
结果:
例3:
结果:
例4:
运行结果: [ 1.62434536 -0.61175641 -0.52817175 -1.07296862 0.86540763]
|