可以使用 np.ix_ 簡化在多維 NumPy 數組中操作選擇或分配。其工作原理如下:
A. Selection
np.ix_ 允許您將索引數組分組為更高維度的組合以索引多維數組。若要使用兩個一維索引數組(例如row_indices 和col_indices)進行選擇,請使用:
<code class="python">x_indexed = x[np.ix_(row_indices, col_indices)]</code>
這相當於巢狀版本,其中外部索引數組(例如row_indices)針對內部索引數組進行廣播索引數組(col_indices):
<code class="python">x_indexed = x[np.asarray(row_indices)[:,None], col_indices]</code>
B.賦值
同樣,使用np.ix_建立的索引數組元組,可以直接完成標量賦值或資料區塊的廣播:
<code class="python">x[np.ix_(row_indices, col_indices)] = scalar # assign a scalar x[np.ix_(row_indices, col_indices)] = block # assign a broadcastable block</code>
np.ix_ 也適用於布林遮罩:
A.選擇
要使用布林遮罩(row_mask 和col_mask)選擇資料區塊,請使用:
<code class="python">x[np.ix_(row_mask, col_mask)]</code>
B.作業
對於帶有布林遮罩的作業,請使用:
<code class="python">x[np.ix_(row_mask, col_mask)] = scalar # assign a scalar x[np.ix_(row_mask, col_mask)] = block # assign a broadcastable block</code>
以上是`np.ix_` 如何簡化多維 NumPy 陣列中的索引選擇和分配?的詳細內容。更多資訊請關注PHP中文網其他相關文章!