python中与矩阵有关的几个模块

本文深入探讨了Python中数组的多种实现方式,包括标准list、array模块和强大的Numpy模块。详细讲解了Numpy数组的创建、数据类型、常见操作如zeros、ones、full以及随机数生成等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python list的优点是对List中的元素不做特定要求的
Python灵活但效率太低

array模块

arr=array.array(‘i’,[i for i in range(10)])
则会存储单一的元素int
array 存储的形式只是将元素看做数组
而不是向量或矩阵(即没有配备相应的向量或矩阵的运算)

numpy 模块

numpy.array与list的创建方法基本类似
它存储的元素类型也是单一的
nparr=numpy.array(数组)
nparr.dtype 查看数据类型
对于整型的numpy传入浮点型也是可以的但只截取整数部分
numpy.zeros(10) 获得10个数值为0的浮点型的数组
numpy.zeros(10,dtype=int) 获得10个数值为0的整数型的数组
numpy.zeros(shape=(i,j),dtype=int) 获得i行j列的整数型二维数组元素为0
numpy.ones与numpy.zeros对应数值大小为1
numpy.full(shape=(i,j),fill_value=k)
获得指定大小k的i行j列的二维数组

arange模块

[i for i in range(0,20,2)]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
它的意义是在0~20之间但不包括20以2为步长创建数组
但步长是不能传入浮点数的

arange
numpy.arange([创建形式与range相同])
举例:

numpy.arange(0,10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
0~10步长默认为1

numpy.arange(0,1,0.2)
array([ 0. , 0.2, 0.4, 0.6, 0.8])
步长可以设为浮点型

numpy.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
省略起始点默认为0步长默认为1

linspace 模块
numpy.linspace(0,20,10)
array([ 0. , 2.22222222, 4.44444444, 6.66666667,
8.88888889, 11.11111111, 13.33333333, 15.55555556,
17.77777778, 20. ])
0~20包括20形成10个元素的 等差序列

random模块
numpy.random.randint(0,10)
4
0~10前闭后开区间随机取一个元素

numpy.random.randint(0,10,size=10)
array([7, 0, 5, 1, 0, 9, 6, 3, 5, 1])
在0~10之间随机获取形成10元素的数组

numpy.random.randint(0,10,size(3,5))
array([[7, 9, 5, 7, 1],
[4, 6, 8, 7, 7],
[3, 6, 6, 3, 8]])
在0~10之间随机获取形成3行5列的数组

numpy.random.seed(k)
当在获取随机数之前加入的种子
若两次获取随机数加入的种子相同那么获得的结果也是相同的

numpy.random.ranom()
0.8166018352206666
在0~1之间随机(均匀的)获取一个数

numpy.random.random((3,5))
array([[ 0.33607158, 0.89081653, 0.19812181, 0.03061665, 0.87761494],
[ 0.72743551, 0.54088093, 0.13145815, 0.41366737, 0.77872881],
[ 0.58390137, 0.18263144, 0.82608225, 0.10540183, 0.28357668]])
在0~1之间随机(均匀的)获取几个数并形成3行5列的矩阵

numpy.random.normal()
-0.6363279047399046
获取一个N~(0,1)的正态分布的随机变量

numpy.random.normal(10,100)
-123.16895523097557
获取一个N~(10,100)的正态分布的随机变量

numpy.random.normal(0,1,(3,5))
array([[ 137.31062684, 50.92450389, -50.74730885, 103.40095537,
-174.37360917],
[ 57.80520787, 58.52609213, -37.49973191, -106.58659344,
-65.56298929],
[ 68.81038044, -133.92451185, -36.12213374, 131.26745636,
80.46611312]])
获取几个N~(10,100)的正态分布的随机变量形成3行5列的数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值