一、np.sum()和sum的区别
如果只用sum()的话,表示的是数组中对应维度上的数相加,得到的是比原始数组少一维的数组。
如果写 np.sum() 的话,表示一个数组中的维数和列数上的所有数都加在一起,得到的是一个数值。
二、np.tile()
b = tile(a,(m,n)): 即是把a数组里面的元素复制n次放进一个数组c中,然后再把数组c复制m次放进一个数组b中,通俗地讲就是将a在行方向上复制m次,在列方向上复制n次。
也就是生成一个元素为a,m行n列的数组。
三、np.clip()
b = clip(a, a_min, a_max, out=None)
将数组a中的所有数限定到范围a_min和a_max中,即a中所有比a_min小的数都会强制变为a_min,a中所有比a_max大的数都会强制变为a_max.
其中,a_min和a_max即可以是一个数值,也可以是和a相同形状的一个数组,这个时候是对应元素进行比较。
Examples-------->>> a = np.arange(10)>>> np.clip(a, 1, 8)array([1, 1, 2, 3, 4, 5, 6, 7, 8, 8])>>> aarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])>>> np.clip(a, 3, 6, out=a)array([3, 3, 3, 3, 4, 5, 6, 6, 6, 6])>>> a = np.arange(10)>>> aarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])>>> np.clip(a, [3, 4, 1, 1, 1, 4, 4, 4, 4, 4], 8)array([3, 4, 2, 3, 4, 5, 6, 7, 8, 8])
参考链接:clip()函数
四、np.outer()
对于多维向量,全部展开变为一维向量
第一个参数表示倍数,使得第二个向量每次变为几倍。
第一个参数确定结果的行,第二个参数确定结果的列
示例:
import numpy as np
x1 = [1,2,3]
x2 = [4,5,6]
outer = np.outer(x1,x2)
print outerx1 = [[1,2],[3,4]]
x2 = [[1,1],[1,1]]
outer = np.outer(x1,x2)
print outer结果显示:
[[ 4 5 6] #1倍[ 8 10 12] #2倍[12 15 18]] #3倍[[1 1 1 1] #1倍[2 2 2 2] #2倍[3 3 3 3] #3倍[4 4 4 4]] #4倍
五、np.dot(),np.multiply(),np.matmul(),* 的区别
1、对于矩阵(matrix)而言
np.multiply() 是对应元素相乘,
而 * 、np.matmul() 函数 与 np.dot()函数 相当于矩阵乘法(矢量积),对应的列数和行数必须满足乘法规则;
如果希望以数量积的方式进行,则必须使用 np.multiply() 函数.
2、对于数组(Array)而言,
np.multiply 和 * 均表示的是数量积(即对应元素的乘积),
np.matmul()与np.dot()表示的是矢量积(即矩阵乘法),一维时计算内积。
综上可知,
在想计算点乘时,使用函数np.multiply(),
在想计算矩阵乘法时使用函数np.dot(),
通常不会引起错误。
参考链接:各种乘法区别~~