数组?向量?矩阵?多维数组?张量?一次全部搞懂!!!

一、概念

数组?向量?矩阵?多维数组?张量?

数组是一种数据结构,分为一维、二维和多维数组

在数学上,一般把一维数组称为向量

二维数组称为矩阵

三维及以上的数组称为张量(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创建,指定形状的空数组

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值