python numpy 陣列如何對每個元素進行操作?

時間 2021-06-03 02:47:13

1樓:金辰

用map函式可以實現

>>> def f(xreturn x * x...>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> list(r)

[1, 4, 9, 16, 25, 36, 49, 64, 81]源鏈結map/reduce

2樓:採石工

答主總結了四種方式,都沒有直接用到迴圈,希望有用。

>>> import numpy as np

>>> a = np.random.randint(-5, 5, (5, 5))

>>> a

array([[-4, -4, -5, 2, 11, -2, -1, 3, 31, -2, 3, -5, 30, -3, -5, 1, -40, 3, 1, 3, -4]])

# 方式一

>>> np.maximum(a, 0)

array([[0, 0, 0, 2, 10, 0, 0, 3, 30, 0, 3, 0, 30, 0, 0, 1, 00, 3, 1, 3, 0]])

# 方式二

>>> (a + abs(a)) / 2

array([[0, 0, 0, 2, 10, 0, 0, 3, 30, 0, 3, 0, 30, 0, 0, 1, 00, 3, 1, 3, 0]])

# 方式三

>>> b = a.copy()

>>> b[b < 0] = 0

>>> b

array([[0, 0, 0, 2, 10, 0, 0, 3, 30, 0, 3, 0, 30, 0, 0, 1, 00, 3, 1, 3, 0]])

# 方式四

>>> np.where(a > 0, a, 0)

array([[0, 0, 0, 2, 10, 0, 0, 3, 30, 0, 3, 0, 30, 0, 0, 1, 00, 3, 1, 3, 0]])

3樓:codingyourlife

恩,用布林陣列可以直接實現啊

import numpy as np

from numpy import random as nrx = nr.randint(-5,5,(5,5))y=x.copy()#複製乙份出來

booly = y<0 #小於0的部分是TRUE 大於0是FALSE boolx.shape 等於x.shape

y[booly]=0#y就是你要的陣列

4樓:Fizzz

樓上已經回答了你的問題,我再推薦給你一本書《Python for data analysis》,裡面有一章講numpy的,看一看應該很有用。

如何用python numpy產生乙個正態分佈隨機數的向量或者矩陣?

漠漠上寒 import numpy as np from numpy.linalg import cholesky import matplotlib.pyplot as plt sampleNo 1000 mu np.array 1,5 Sigma np.array 10,5 5,5 R chol...

Excel列陣列如何轉置成行陣列?

小鏟子 這類問題如果涉及資料少,那就用公式解決,如果涉及資料多就用VBA如果考慮用公式解決我一般是找到資料排列規律後使用引用公式 INDIRECT函式 加單元格座標 ADDRESS COLUMN ROW函式 來處理的,涉及到位置重複則使用INT MOD函式來幫忙。我的解決方案你參考一下 模擬資料 公...

python numpy 在二維array中以一行作為乙個整體,快速查詢一維array?

first nonzero element Trac 1673 Issue 2269 numpy numpy 2.0可能會有find。目前估計自己實現 import numpy asnp deffind data,x start None end None find x in data endp e...