首页 >后端开发 >Python教程 >`np.ix_` 如何简化多维 NumPy 数组中的索引选择和分配?

`np.ix_` 如何简化多维 NumPy 数组中的索引选择和分配?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-26 19:38:021079浏览

How can `np.ix_` simplify index selection and assignment in multidimensional NumPy arrays?

使用 np.ix_ 索引数组和布尔掩码以进行索引选择或分配

可以使用 np.ix_ 简化在多维 NumPy 数组中操作选择或分配。其工作原理如下:

1.使用索引数组

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>

2.使用布尔掩码

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn