Dim*_*ims 4 python arrays indexing numpy
假设我有3 x 2矩阵
A = np.arange(3*2).reshape(3,2)
Run Code Online (Sandbox Code Playgroud)
并希望通过索引数组选择元素
I = [0, 1, 0]
Run Code Online (Sandbox Code Playgroud)
要得到
[[0],[3],[4]]
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
这样写
A[:,[0,1,0]]
Run Code Online (Sandbox Code Playgroud)
给出了完全不同的东西(什么?)
你可以做的是传递一个迭代的第一dimesion值和迭代的第二个维度(如列表)。就像是:
I = [0, 1, 0]
A[range(len(I)),I]
Run Code Online (Sandbox Code Playgroud)
这将产生:
>>> A[range(len(I)),I]
array([0, 3, 4])
Run Code Online (Sandbox Code Playgroud)
如果您希望将其作为2d数组,则可以使用其他变形:
>>> A[range(len(I)),I].reshape(-1,1)
array([[0],
[3],
[4]])
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)A[:,[0,1,0]]
给出了完全不同的东西(什么?)
它创建一个矩阵,其中第一列是的第一(0
)列A
,第二列是的第二(1
)列A
,第三列再次是的第一(0
)列A
。
归档时间: |
|
查看次数: |
1000 次 |
最近记录: |