一、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])
>>> a
array([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)
>>> a
array([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 outer
x1 = [[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(),
通常不會引起錯誤。
參考鏈接:各種乘法區別~~