Python3之Numpy基础操作
这是我总结的一些numpy知识点,若有错误和补充请指正,谢谢大家!
引入numpy库
import numpy as np
1.创建数组
a=np.array([[1,2],[2,3],[3,4]])
a为三行两列的数组
**行数与列数**
print(a.shape)
输出结果:
(3,2)
**维度**
print(a.ndim)
输出结果
2
**元素个数**
print(a.size)
输出结果
6
创建3行3列0矩阵
b=np.zeros((3,3))
#结果
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
创建2行3列元素为1的矩阵
c=np.ones((2,3))
#结果
[[1. 1. 1.]
[1. 1. 1.]]
创建单位矩阵
d=np.eye(5)
#结果
[[1. 0. 0. 0. 0.]
[0. 1. 0. 0. 0.]
[0. 0. 1. 0. 0.]
[0. 0. 0. 1. 0.]
[0. 0. 0. 0. 1.]]
创建元素为随机数的数组
e=np.random.random((2,3))
#结果
[[0.90392552 0.59746743 0.29891424]
[0.72513426 0.71411961 0.56008372]]
2.数组索引
关键:给每个维度切片
先创建a=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a[1][1])
#结果
5
print(a[0:3,1:2])#第1,2,3行第2列的值组成的数组
#结果
[[2]
[5]
[8]]
print(a[[0,1,2],[0,1,2]])
等价于
print(np.array([a[0,0],a[1,1],a[2,2]]))
#结果
[1 5 9]
3.数组运算
x=np.array([[1,2],[3,4],[5,6]])
y=np.array([[7,8],[9,10],[11,12]])
加法
print(x+y)
等价于
print(np.add(x,y))
| 1 2 | | 7 8 |
| 3 4 | + | 9 10 |
| 5 6 | | 11 12 |
#结果
[[ 8 10]
[12 14]
[16 18]]
减法
print(x-y)
等价于
print(np.subtract(x,y))
#结果
[[-6 -6]
[-6 -6]
[-6 -6]]
乘法
print(x*y)
等价于
print(np.multiply(x,y))
#结果
[[ 7 16]
[27 40]
[55 72]]
除法
print(x/y)
等价于
print(np.divide(x,y))
#结果
[[0.14285714 0.25 ]
[0.33333333 0.4 ]
[0.45454545 0.5 ]]
矩阵乘法
a=np.array([[1,2],[3,4],[5,6]])
b=np.array([[1,2,3],[4,5,6]])
| 1 2 |
| 3 4 | *| 1 2 3 |
| 5 6 | | 4 5 6 |
#结果
[[ 9 12 15]
[19 26 33]
[29 40 51]]
向量內积
x=np.array([1,2,3])
y=np.array([4,5,6])
print(np.dot(a,b))
等价于
print(a.dot(b))
#结果
32
转置
print(a)
print(a.T)
#结果
[[1 2]
[3 4]
[5 6]]
[[1 3 5]
[2 4 6]]