1
我有一個這樣的數組:快速的方式來圓陣值根據病情
a = np.array([
[0.02, 1.01, 4.01, 3.00, 5.12],
[2.11, 1.50, 3.98, 0.52, 5.01]])
和「條件」陣:
c = np.array([0, 1, 4, 5])
我要舍a[i][j]=c[k]
如果c[k] - const < a[i][j] < c[k] + const
,否則a[i][j] = 0
例如,const = 0.05
。其結果可能是:
a_result = [[0 1 4 0 0]
[0 0 4 0 5]]
的navie方式是使用3 for循環來檢查每個a[i][j]
和c[k]
。然而,當a
很大時,它非常緩慢。我們有快速的「蟒蛇方式」來做到這一點嗎?
對於環(慢)解決方案:
a_result = np.full(a.shape, 0)
const = 0.05
mh, mw = a.shape
for i in range(mh-1):
for j in range(mw-1):
for k in range(1, len(c)):
if a[i][j] > (c[k] - const) and a[i][j] < (c[k] + const):
a_result[i][j] = c[k]
檢查Python的'map'運算符;我認爲NumPy有一個更容易適用於數組的應用程序。 – Prune
我剛剛更新了問題@Divakar。 – trminh89
當'a.shape =(2,5)'和'c.size = 4'時,如何理解'a [i] [j] = c [k]'? –