python - 我可以切片像numpy这样的列表吗?
问题描述
如果我使用 numpy,则可以按如下方式对数组进行切片:
import numpy as np
A = np.asarray([1, 2, 3, 4, 5])
print(A[np.asarray([1, 3])])
然后输出是[2 4]
。我想知道当 A 只是一个 list 时,我是否可以在不使用 numpy 的情况下执行相同的操作。
解决方案
不幸的是,你不能。您可以对纯 python 列表进行切片。但是,这不是切片。如果你在列表中尝试,你会得到
TypeError: list indices must be integers or slices, not list
numpy 数组支持这一点,因为它们具有不同的__get__
方法实现。除了自己对类进行子类化之外,您无能为力list
(实际上不应该这样做,numpy 实现已针对此类操作进行了优化)。
推荐阅读
- python - Torchvision 数据集:Flickr8k 未正确导入数据点
- node.js - 我们可以检测主机名并将条件应用于 env 文件 Nodejs
- javascript - 在Javascript中用另一个词替换一个词而不替换另一个在同一个句子中包含相似子字符串的词
- xamarin - 如何正确排除某些库,以便它们不在 Xamarin.Android 中链接?
- python - 根据现有数组创建二维数组
- c++ - c++ static_assert 在“if constexpr 语句”的两个分支上都失败
- react-native-picker-select - 箭头单击以更改值但不关闭模式
- sql - SQL Server 从平面文件导入数据:0xc02020a1 文本被截断或目标代码页中的一个或多个字符不匹配
- sql - 如何在 google BigQuery 中获取每个键的最后两行?
- mongodb - Docker 的 MongoDB 连接错误 (SASL) - Windows 10