从另一个数组中明显创建数组?

时间:2015-06-19 08:33:03

标签: python arrays scipy

我有SciPy的以下代码段:

resDat = data[scipy.random.randint(0,N,(N,))]

我试图了解这条线的工作原理和原因。 randint函数似乎在数据indizes的范围内返回N整数值的列表,所以我解释这行代码是resDat将成为一个数组来自N的{​​{1}}个随机值。 我试图在Python shell中复制它:

data

但是,如果我尝试这个,我会 - 第3行 - 错误

a=[1,2,3,4,5,6]
b=[1,2]
c=a[b]

据我所知,我需要给它一个数字而不是列表。但为什么顶部的生产线呢?我觉得我错过了一些重要的区别,但无法弄清楚哪一个 来自主要的.NET背景,第一行看起来有点像LinQ语句,但它是否具有可比性?

1 个答案:

答案 0 :(得分:1)

我认为数据类型为

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