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])