给定一个 numpy
数组和一个 __getitem__
类型的索引,是否有一种惯用的方法来获取数组的相应切片,总是返回一个数组而不是标量?
有效索引的示例包括:int
、slice
、省略号或上述的元组。
假设我有一个这样的数组:
a = np.array([[1,2],[3,4]])
我正在寻找一个在所有情况下都等同于 a[whatever]
的操作,除非 a[whatever]
返回标量(例如,a[1,1]
).在这些情况下,我希望这个替代操作返回一个单元素数组。
最佳答案
如果您只想返回单元素数组,否则会返回标量,为什么不对切片的结果使用 numpy.atleast_1d
?
例如:
import numpy as np
x = np.arange(100).reshape(10,10)
print x[0,0]
print np.atleast_1d(x[0,0])
print np.atleast_1d(x[:,:3])
https://stackoverflow.com/questions/5902108/