我有来自SciPy的以下代码片段:
resDat = data[scipy.random.randint(0,N,(N,))]
我试图理解的是这条线是如何工作的,以及为什么工作的。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语句,但它有可比性吗
我相信数据应该是-
你可以做
type(data)
,它应该是numpy.ndarray
此外,
scipy.random.randint()
还返回类型为numpy.ndarray
的值您可能无法执行
lst[[1,2]]
,但可以使用numpy.ndarray
作为另一个numpy.ndarray
的下标一个简单的例子-
相关问题 更多 >
编程相关推荐