Python 是否从另一个数组中创建数组?

Python 是否从另一个数组中创建数组?,python,arrays,scipy,Python,Arrays,Scipy,我从中获得了以下代码片段: 我试图理解的是这条线是如何工作的以及为什么工作的。randint函数似乎返回数据索引范围内的N整数值列表,因此我解释这行代码的作用是resDat将成为一个数组,其中包含N来自data的随机值。 我尝试在Python shell中复制这一点: a=[1,2,3,4,5,6] b=[1,2] c=a[b] 然而,如果我尝试这个,我会在第3行看到错误 TypeError: list indices must be integers, not list 据我所知,这意味着

我从中获得了以下代码片段:

我试图理解的是这条线是如何工作的以及为什么工作的。
randint
函数似乎返回数据索引范围内的
N
整数值列表,因此我解释这行代码的作用是
resDat
将成为一个数组,其中包含
N
来自
data
的随机值。 我尝试在Python shell中复制这一点:

a=[1,2,3,4,5,6]
b=[1,2]
c=a[b]
然而,如果我尝试这个,我会在第3行看到错误

TypeError: list indices must be integers, not list
据我所知,这意味着我需要给它一个数字,而不是一个列表。但是为什么顶部的生产线能正常工作呢?我有种感觉,我错过了一些重要的区别,但无法找出哪一个。

第一行主要来自.NET背景,看起来有点像LinQ语句,但它有可比性吗?

我相信数据应该是-

numpy.ndarray
您可以执行
type(data)
操作,它应该显示为
numpy.ndarray

另外,
scipy.random.randint()
还返回类型为
numpy.ndarray
的值

您可能无法执行
lst[[1,2]]
,但可以使用
numpy.ndarray
作为另一
numpy.ndarray
的下标

一个简单的例子-

import numpy as np
data = np.array([10,15,20,25,30])
print(data[np.array([1,2,3])])
>> array([15,20,25])

见鬼,这就是为什么我讨厌隐式声明。那就解释了,谢谢。
import numpy as np
data = np.array([10,15,20,25,30])
print(data[np.array([1,2,3])])
>> array([15,20,25])