可以使用 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中文网其他相关文章!