Numpy索引和创建新数组

时间:2019-02-01 07:05:29

标签: python python-3.x numpy

我试图了解print语句中发生了什么。 我知道索引正在创建一个2D数组,但是我不了解顺序

x = np.arange(0,2*np.pi,0.001)
X = np.concatenate(([x], [np.ones(y.shape[0])]), axis=0)

print(X[[[0,1],[0,1]],[[0,0],[-1,-1]]])

产生:

array([[0.   , 1.   ],
       [6.283, 1.   ]])

1 个答案:

答案 0 :(得分:0)

我调查了documentation,并认为下面的示例应解释该索引编制:

应从4x3数组中使用高级索引选择拐角元素。因此,需要选择列为[0,2]之一而行为[0,3]之一的所有元素。要使用高级索引,需要明确选择所有元素。使用前面解释的方法,可以编写:

x = array([[0, 1, 2],
           [3, 4, 5],
           [6, 7, 8],
           [9, 10, 11]])
rows = np.array([[0, 0],
                 [3, 3]], dtype=np.intp)
columns = np.array([[0, 2],
                    [0, 2]], dtype=np.intp)
x[rows, columns]

最后一行给出

array([[0, 2],
       [9, 11]])
您问题中的

代码似乎执行与该示例相同的操作(但具有其他值),但是直接敲击索引而不是创建rowscolumns

X[[[0, 1], [0, 1]], [[0, 0], [-1, -1]]]可能被读取为get元素,它们从0开始(在第0或第1行中)和(在0中或最后一列)