我有一个类似这样的数组(将有5个以上的项,但我只使用了5个项作为示例):
states = numpy.array([ [0, 0, 0],
[0, 0, 1],
[0, 2, 0],
[0, 1, 0],
[0, 1, 1]]
我似乎找不到一种方法来只取这个数组的前n项。你知道吗
例如,如果n=3,则:
states = numpy.array([ [0, 0, 0],
[0, 0, 1],
[0, 2, 0],]
我试过使用循环和列表.append但我一直在犯错
"list indices must be integers, not tuple"
因为它返回的数组如下所示:
[[array([0, 0, 0])], [array([0, 0, 1])], [array([0, 2, 0])]
一定有一个简单的方法可以做到这一点,但我已经找了几个小时,找不到一个!你知道吗
谢谢你的帮助!!你知道吗
您的尝试很接近,但是没有成功,因为您将Python的内置列表与NumPy的数组混合在一起。区分这一点很重要,因为它们实际上是完全不同的。你知道吗
您的解决方案可以通过使用^{} 而不是
list.append
来修复,后者将返回NumPy数组而不是列表。你知道吗但是,一种更简单、更可取的方法是使用NumPy's slicing:
相关问题 更多 >
编程相关推荐