一、概念
数组?向量?矩阵?多维数组?张量?
数组是一种数据结构,分为一维、二维和多维数组
在数学上,一般把一维数组称为向量
二维数组称为矩阵
三维及以上的数组称为张量(Tensor)或多维数组
二、数组的创建
1、一维数组(向量)的创建
(1)创建自定义的数组
#导入模块
import numpy as np
#使用array函数创建一维数组
a=np.array([8,6,3,7])
print(a)
[8 6 3 7]
(2)创建随机的一维数组(向量)
方式一(np.arange(start, end, setp)方法):
该方法既可以创建整数数组(步长为整数),又可以创建浮点数数组(步长为浮点数)
有序输出
#导入模块
import numpy as np
#使用array函数创建一维数组
a=np.arrange(1, 15, 2)
print(a)
[ 1 3 5 7 9 11 13]
方式二(numpy.random.random(size=None)方法):
这种方式创建的数组,数组中每一个元素的值为[0.0~1.0)之间的随机浮点数
无序随机输出
#使用random创建一维数组
a=np.random.random(size=6)
[0.23332537 0.28755256 0.17279559 0.56154271 0.96535555 0.58344776]
方式三(numpy.random.randint(start, end, size)方法):
这种方式创建的数组,数组中每一个元素的值为(start, end]之间的随机整数
无序随机输出
#创建2~15一维随机整数(此处15-2=13,否则元素个数与数组长度不一致会报错)
a=np.random.randint(2,15,size=13)
[10 2 6 5 7 6 5 2 3 6 12 2 13]
2、二维数组(矩阵)的创建
(1)创建自定义的二维数组(矩阵)
#使用array函数创建二维数组
b = np.array([[1,2,3], [4,5,6], [7,8,9]])
print(b)
[[1 2 3]
[4 5 6]
[7 8 9]]
(2)创建随机的二维数组(矩阵)
方式一(numpy.random.random(size=None)方法):
这种方式创建的数组,数组中每一个元素的值为[0.0~1.0)之间的随机浮点数
无序浮点数随机输出
#使用random创建二维数组
a=np.random.random(size=(2,3))
[[0.67545812 0.86948298 0.16560605]
[0.11302891 0.10576503 0.29502089]]
方式二(numpy.random.randint(start, end, size)方法):
这种方式创建的数组,数组中每一个元素的值为(start, end]之间的随机整数
无序整数随机输出
#创建5~17二维随机整数(此处17-5=3*4,否则元素个数与数组长度不一致会报错)
a=np.random.randint(5,17,size=(3,4))
[[14 11 6 15]
[11 10 14 7]
[10 16 7 5]]
3、多维数组(张量)的创建
(1)创建自定义的多维数组(张量)
#使用array函数创建多维数组
a = np.array([[[1,2,3], [4,5,6], [7,8,9]],[[11,22,33], [44,55,66], [77,88,99]],[[10,20,30], [40,50,60], [70,80,90]]])
print(a)
print(a.shape)
[[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]]
[[11 22 33]
[44 55 66]
[77 88 99]]
[[10 20 30]
[40 50 60]
[70 80 90]]]
a.shape: (3, 3, 3)
(2)创建随机的多维数组(张量)
方式一(numpy.random.random(size=None)方法):
这种方式创建的数组,数组中每一个元素的值为[0.0~1.0)之间的随机浮点数
无序浮点数随机输出
#使用random创建多维数组
a=np.random.random(size=(2, 3, 4))
[[[0.81117232 0.82416102 0.03973792 0.02312296]
[0.70040082 0.10482615 0.87856007 0.06815277]
[0.17607815 0.75775306 0.80417179 0.10878122]]
[[0.45850986 0.11063061 0.16898467 0.06282771]
[0.17243226 0.32883114 0.53118951 0.68274504]
[0.44468439 0.45450119 0.47411876 0.39162991]]]
方式二(numpy.random.randint(start, end, size)方法):
这种方式创建的数组,数组中每一个元素的值为(start, end]之间的随机整数
无序整数随机输出
#创建5~17多维随机整数(此处29-5=2*3*4,否则元素个数与数组长度不一致会报错)
a=np.random.randint(5,29,size=(2, 3, 4))
[[[ 6 20 22 22]
[22 28 22 6]
[25 21 6 28]]
[[13 18 12 26]
[28 26 21 24]
[11 6 10 19]]]
三、特殊数组的创建
1、全 0 数组
np.zeros((6,),dtype=int) # 5个全 0 元素数组
整数 0
[0 0 0 0 0 0]
np.zeros((3,4)) # 3行4列全 0.0 元素数组
浮点数0.0
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
2、全 1 数组
np.ones创建,元素为1.0
3、空数组empty
np.empty创建,指定形状的空数组