python - 这个 numpy 高级索引代码是如何工作的?

标签 python python-3.x numpy numpy-indexing advanced-indexing

我正在学习numpy框架,这段代码我看不懂。

import numpy as np
a =np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11]])
print(a)
row = np.array([[0,0],[3,3]])
col = np.array([[0,2],[0,2]])
b = a[row,col]
print("This is b array:",b)

这个b数组返回a数组的角值,即b等于[[0,2], [9,11]].

最佳答案

当使用数组或“类数组”完成索引以访问/修改数组的元素时,它被称为高级索引。

In [37]: a
Out[37]: 
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])

In [38]: row
Out[38]: 
array([[0, 0],
       [3, 3]])

In [39]: col
Out[39]: 
array([[0, 2],
       [0, 2]])

In [40]: a[row, col]
Out[40]: 
array([[ 0,  2],
       [ 9, 11]])

这就是你得到的。下面是解释:

              Indices of  
`a[row, col]` row  column  
   ||   ||    ||   ||
   VV   VV    VV   VV
  a[0,  0]   a[0,  2]   
  a[3,  0]   a[3,  2]
    |__________|   |
   row-idx array   |
        |__________| 
        column-idx array

关于python - 这个 numpy 高级索引代码是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56001366/

相关文章:

python - 使用 syslog-ng python 目标设置变量路径

python - 从文件加载大型数组,numpy 比列表追加慢。瓶颈在哪里?

python-2.7 - 有人可以解释一下这个神经网络机器学习代码吗?

python - np.r_ 做什么(numpy)?

python - Hadoop Spark 1.4.1 - 对多个 CSV 文件进行排序并将排序后的结果保存在 1 个输出文件中

python - 在 Python 接口(interface)中定义属性是个好主意吗?

python - Django 使用从模型填充的数据加载表单

Python Beautiful Soup——通过 Steam 的年龄检查

python - Plotly:如何设置线条颜色?

python - 如何使用 ffmpeg (ffmpeg-python) 绘制带有颜色渐变填充的文本?然后与音乐混合?