numpy必知必會-第二天

6 替換array中的元素,并賦值給新的array
例如:
輸入arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
輸出out為array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1])
arr為array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
out = np.where(arr  % 2 == 1 , -1 ,  arr)
print(out)
print(arr)

輸出:

[ 0 -1  2 -1  4 -1  6 -1  8 -1]
[0 1 2 3 4 5 6 7 8 9]

7 如何改變array的形狀
例如:
輸入arr=np.arange(10)
輸出array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]])

arr=np.arange(10)
arr.reshape(2, -1)

輸出

array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])

8 如何垂直堆疊兩個array
例如:
輸入a = np.arange(10).reshape(2,-1),b = np.repeat(1, 10).reshape(2,-1)
輸出> array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1]])

a = np.arange(10).reshape(2,-1)
b = np.repeat(1, 10).reshape(2,-1)
np.concatenate([a, b], axis=0)

輸出

array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9],
       [1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1]])

你也可以通過以下操作實現(xiàn)。但上面的方式更通用。

np.vstack([a, b])
np.r_[a, b]

9 如何水平堆疊兩個array
例如:
輸入a = np.arange(10).reshape(2,-1),b = np.repeat(1, 10).reshape(2,-1)
輸出
array([[0, 1, 2, 3, 4, 1, 1, 1, 1, 1],
[5, 6, 7, 8, 9, 1, 1, 1, 1, 1]])

a = np.arange(10).reshape(2,-1)
b = np.repeat(1, 10).reshape(2,-1)
np.concatenate([a, b], axis=1)

輸出

array([[0, 1, 2, 3, 4, 1, 1, 1, 1, 1],
       [5, 6, 7, 8, 9, 1, 1, 1, 1, 1]])

你也可以通過以下操作實現(xiàn)。但上面的方式更通用。

np.hstack([a, b])
np.c_[a, b]

10 如何通過numpy的內(nèi)建函數(shù)實現(xiàn)如下操作
輸入a = np.array([1,2,3])
輸出array([1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3])

a = np.array([1,2,3])
np.repeat(a, 3), np.tile(a, 3)

輸出

(array([1, 1, 1, 2, 2, 2, 3, 3, 3]), array([1, 2, 3, 1, 2, 3, 1, 2, 3]))

現(xiàn)在你知道了repeat和tile的區(qū)別,接下來就可以進(jìn)行如下操作完成任務(wù)了

np.r_[np.repeat(a, 3), np.tile(a, 3)]

輸出

array([1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3])
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容