假设我有阵列:
>>> import numpy as np
>>> myarr = np.array([[1],[2],[3],[2]])
我想使用逻辑索引来返回子数组,其中myarr
不等于2。在
因此,myarr.shape = (4,1)
但是subarr.shape = (2,)
。在
为什么在逻辑索引不影响维度2的情况下更改维度2的大小?我可以很容易地改变输出,但是如果我需要在代码中经常使用逻辑索引,我不想总是考虑到可能已经改变的额外维度(即,显然与我所做的逻辑切片无关的维度)。在
这个(N,1)-->;(K,)示例特别麻烦,因为somethine by one数组的任何逻辑切片也必须是somethine by one数组。在
我觉得必须有一种更干净的方法来让NumPy切片操作不涉及琐碎的数组维度。有什么建议吗?在
在numpy中,使用布尔数组进行索引与使用数组非零(). 因为数组非零()返回2darray的两组索引,实际上是在第一个维度和第二个维度上建立索引:
你真正想要的是:
^{pr2}$你可以通过:
或者:
相关问题 更多 >
编程相关推荐