前言
主要是为了记录一些Numpy常用函数,方便以后自己查阅。
正文
1.创建ndarry
(1)np.array()
a = np.array([1, 2, 3])
b = np.array([[1, 2, 3], [4, 5, 6]])
(2)np.ones()、np.eye()、np.zeros()
a = np.ones((3, 2))
b = np.eye(5)
c = np.zeros((3, 2, 5))
2.索引与切片
较为简单,忘了参考书P100
3.通用函数(exp、sin…)
参考书P111
4.线性代数
(1)arr.T 转置
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a, '\n\n', a.T)
结果:
[[1 2 3]
[4 5 6]]
[[1 4]
[2 5]
[3 6]]
(2)行列式 X.dot(Y)
表示X*Y
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.dot(a.T))
结果:
[[14 32]
[32 77]]
(3)补充
5.数学统计
np.mean()、np.sum()…参考
想说一点,就是axis这个参数:
a = np.ones((5, 4))
print(a, '\n')
print(a.sum(), '\n')
print(a.sum(axis=0), '\n')
print(a.sum(axis=-1), '\n')
结果:
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
20.0
[5. 5. 5. 5.]
[4. 4. 4. 4. 4.]
还有,np.cumsum()也很有用
a = np.ones(10)
print(a.cumsum())
结果:
[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
6.排序
np.sort()
和上面一样,记住axis这一参数的用法
7.集合运算
8.随机数
9.其他
(1)np.meshgrid(arr1, arr2)
主要用来画3D图,arr1和arr2为一维ndarry数组。
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
x = np.arange(-5, 5, 0.01)
y = x
x, y = np.meshgrid(x, y)
z = np.sin(x)**2 + np.cos(y)**2
fig = plt.figure()
ax = plt.axes(projection='3d')
ax.plot_surface(x, y, z)
(2)np.where()
相当于 x if condition else y
举两个例子
cond = [0, 1, 0, 0, 1]
x = np.ones(5)
y = [2, 2, 2, 2, 2]
print(np.where(cond, x, y))
结果:
[2. 1. 2. 2. 1.]
x = np.array([1, 2, 3, 4, 5])
y = np.array([6, 6, 6, 6, 6])
print(np.where(x>3, x, y))
结果:
[6 6 6 4 5]
(3)arr.any()和arr.all()
主要用于bool型ndarray,any表示只要arr中有true则返回true,all是用来判断arr中是否全为true