这次是最后一部分了,主要针对一些有关数学的函数,因为再机器学习、深度学习、计算机视觉领域基本上常用的有关numpy的东西都在这里了。很遗憾,我没有太多精力和毅力取深究其中奥秘。我觉得这个说法应有意思的,numpy就是一片充满丰富资源的大海,我学到一些捕鱼技巧就够我用了。下面我放了一个总的API的链接,因为能容很多,我只挑了其中一部分。注意,我给的都是原始的API,具体用法还得看代码。另外的一些数学公式与python中的math库有重叠(如sin、cos、pi等),我现在也不知道到底哪个更好,所以就不列了。
英文官方教程链接
NumPy Reference — NumPy v1.22 Manualhttps://numpy.org/doc/stable/reference/index.html如有侵权,务必联系删除。
ndarray.argmax(axis=None,out=None)
(对应的是ndarray.argmin(axis=None,out=None))
axis指定维度(轴),返回值是最大(最小)元素的索引。
import numpy as np
a = np.array([[1,2],[2,4]])
b = a.argmax(axis=1)
#b = np.argmax(a,axis=1)
print(b)
#[1 1] 第1维,第1个(从0开始)
ndarray.astype(dtype,order='K',casting='unsafe',subok=True,copy=True)
拷贝数组,并映射到指定的类型。dtype指定类型,copy指定是否拷贝。
import numpy as np
a = np.array([1.0,2.4,3.6,4.5])
b = a.astype(int)
print(a)
#[1. 2.4 3.6 4.5] 这种拷贝不改变原来数组
print(b)
#[1 2 3 4] python中向下取整
ndarray.clip(min=None, max=None, out=None, **kwargs)
返回一个再指定最小值和最大值之间的数组。
import numpy as np
a = np.array([1,3,6,9])
b = a.clip(min=3,max=8)
#b = np.clip(a,a_min=3,a_max=8)
print(b)
#[3 3 6 8]
ndarray.item(*args)
将数组的元素复制到标准的python标量(可以认为是一维列表)并返回。
import numpy as np
a = np.array([[1,2],[2,4]])
b = a.item((1,1))
print(b)
#4
ndarray.max(axis=None, out=None, keepdims=False, initial=<no value>, where=True)
返回给定维度上的最大值。
import numpy as np
a = np.array([[1,2],[2,4]])
b = a.max()
#b = np.amax(a)
print(b)
#4
ndarray.mean(axis=None, dtype=None, out=None, keepdims=False, *, where=True)
返回指定维度上的平均值。更高维的我也有点弄不清。
import numpy as np
a = np.array([[1,3],[2,6]])
b = np.mean(a,axis=1)
print(b)
#[2. 4.]
c = np.mean(a,axis=0)
print(c)
#[1.5 4.5]
ndarray.ptp(axis=None, out=None, keepdims=False)
返回给定维度上的最大值减最小值。
import numpy as np
a = np.array([[1,3],[2,6]])
b = a.ptp(axis=1)
#b = np.ptp(a,axis=1)
print(b)
#[2 4]
ndarray.squeeze(axis=None)
从a中删除长度为1的轴。
import numpy as np
a = np.array([[1,3]])
b = a.squeeze(axis=0)
#b = np.squeeze(a,axis=0)
print(b)
#[1 3]
print(a.shape)
#(1,2)
print(b.shape)
#(2,)
ndarray.std(axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, where=True)
返回给定维度上的标准差。
import numpy as np
a = np.array([[1,2],[2,4]])
b = a.std(axis=1)
#b = np.std(a,axis=1)
print(b)
#[0.5 1.]
numpy.dot(a, b, out=None)
数组的点积运算。2维及以下都可以看做矩阵运算,高维的我也弄不清楚。
import numpy as np
a = np.array([1,6])
b = np.array([2,3])
print(np.dot(a,b))
#20 1*2+6*3