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

Mary-Kate Olsen
发布: 2024-10-26 19:38:02
原创
1070 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板