我可以像 numpy 一样切片吗?

如果我使用 numpy,那么我可以按如下方式对数组进行切片:


import numpy as np


A = np.asarray([1, 2, 3, 4, 5])

print(A[np.asarray([1, 3])])

然后输出是[2 4]。我想知道我是否可以在不使用 numpy 的情况下执行相同的操作,因为 A 只是一个 list。


慕的地10843
浏览 108回答 2
2回答

蓝山帝景

您可以使用列表理解,通过多一点输入来做到这一点:print([A[n] for n in [1, 3]])

森栏

不幸的是,你不能。您可以切片纯 python 列表。然而,这不是切片。如果你在列表上尝试,你会得到TypeError: list indices must be integers or slices, not listnumpy 数组支持这一点,因为它们具有不同的__get__方法实现。除了list自己对类进行子类化之外,您无能为力(实际上您不应该这样做,numpy 实现已针对此类操作进行了优化)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python