矩阵操作函数库(Numpy)
1.Numpy的安装
在cmd命令行输入:
pip install numpy运行结果:
C:\Users\20361>pip install numpy
Collecting numpy
Downloading numpy-2.1.3-cp311-cp311-win_amd64.whl.metadata (60 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.8/60.8 kB 249.3 kB/s eta 0:00:00
Downloading numpy-2.1.3-cp311-cp311-win_amd64.whl (12.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.9/12.9 MB 77.8 kB/s eta 0:00:00
Installing collected packages: numpy
Successfully installed numpy-2.1.3
启动python解释器
python
导入Numpy库
from numpy import*
2.Numpy的基本使用
函数的导入
import numpy as np
数组的创建(先创建一个序列,再通过array函数转化成数组)
a=np.array([1,2,3,4])
b=np.array((5,6,7,8))
c=np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]])
shape显示数组大小
a.shape
(4,)
c.shape
(3, 4)
通过shape改变每个轴大小
c.shape=4,3
c
array([[ 1, 2, 3],
[ 4, 4, 5],
[ 6, 7, 7],
[ 8, 9, 10]])
某个轴的元素改为-1时,将根据数组元素的个数自动计算此轴的长度
c.shape=2,-1
c
array([[ 1, 2, 3, 4, 4, 5],
[ 6, 7, 7, 8, 9, 10]])
使用reshape,可以创建一个改变尺寸的新数组,原数组的shape保持不变
d=a.reshape((2,2))
d
array([[1, 2],
[3, 4]])
注:a与d共享数据存储内存区域,
修改其中任意一个数组的元素都会同时修改另外一个数组的内容
3.数组的类型
查看数组a的数据类型
a.dtype
dtype(‘int64’)
可以通过dtype参数在创建时指定元素类型
e=np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]],dtype=float)
e
array([[ 1., 2., 3., 4.],
[ 4., 5., 6., 7.],
[ 7., 8., 9., 10.]])
4.数组的其他创建方式
arange函数(开始值,终止值,步长)
f=np.arange(0,1,0.1)
f
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
linspace函数(开始值,终止值,元素个数)
g=np.linspace(0,1,12)
g
array([0. , 0.09090909, 0.18181818, 0.27272727, 0.36363636,
0.45454545, 0.54545455, 0.63636364, 0.72727273, 0.81818182,
0.90909091, 1. ])
logspace函数(等比数列)
h=np.logspace(0,2,10)
h
array([ 1. , 1.66810054, 2.7825594 , 4.64158883,
7.74263683, 12.91549665, 21.5443469 , 35.93813664,
59.94842503, 100. ])
5.矩阵的运算
利用dot函数计算矩阵点乘积
a=np.arange(12).reshape(4,3)
b=np.arange(12,24).reshape(3,4)
c=np.dot(a,b)
c
array([[ 56, 59, 62, 65],
[200, 212, 224, 236],
[344, 365, 386, 407],
[488, 518, 548, 578]])
矩阵中更高级的运算可以在Numpy的线性代数字库linalg中找到…
6.文件存取
numpy.savetxt和numpy.loadtxt可以读写一维和二维的数组
a=np.arange(0,12,0.5)
np.savetxt(“a.txt”,a)
np.loadtxt(“a.txt”)
array([ 0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. ,
5.5, 6. , 6.5, 7. , 7.5, 8. , 8.5, 9. , 9.5, 10. , 10.5,
11. , 11.5])
也可以改为整数保存数据
np.savetxt(“a.txt”,a,fmt=”%d”,delimiter=”,”)
np.loadtxt(“a.txt”,delimiter=”,”)
array([ 0., 0., 1., 1., 2., 2., 3., 3., 4., 4., 5., 5., 6.,
6., 7., 7., 8., 8., 9., 9., 10., 10., 11., 11.])