取数组的前n项

2024-03-28 19:09:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个类似这样的数组(将有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])]

一定有一个简单的方法可以做到这一点,但我已经找了几个小时,找不到一个!你知道吗

谢谢你的帮助!!你知道吗


Tags: 方法integersnumpy示例列表not数组be
1条回答
网友
1楼 · 发布于 2024-03-28 19:09:49

您的尝试很接近,但是没有成功,因为您将Python的内置列表与NumPy的数组混合在一起。区分这一点很重要,因为它们实际上是完全不同的。你知道吗

您的解决方案可以通过使用^{}而不是list.append来修复,后者将返回NumPy数组而不是列表。你知道吗

但是,一种更简单、更可取的方法是使用NumPy's slicing

states[:n]

相关问题 更多 >