我有一个整数数组。
data = [10,20,30,40,50,60,70,80,90,100]
我想从数组中提取一系列整数并得到一个更小的数组。
data_extracted = [20,30,40]
我尝试了numpy.take
。
data = [10,20,30,40,50,60,70,80,90,100]
start = 1 # index of starting data entry (20)
end = 3 # index of ending data entry (40)
data_extracted = np.take(data,[start:end])
我收到指向numpy.take中的:
的语法错误。
有没有更好的方法使用numpy.take
将数组的一部分存储在单独的数组中?
答案 0 :(得分:3)
您可以直接对列表进行切片。
import numpy as np
data = [10,20,30,40,50,60,70,80,90,100]
data_extracted = np.array(data[1:4])
此外,您不需要使用numpy.array
,您可以将数据存储在另一个列表中:
data_extracted = data[1:4]
如果你想使用numpy.take
,你必须将所需索引的列表作为第二个参数传递给它:
import numpy as np
data = [10,20,30,40,50,60,70,80,90,100]
data_extracted = np.take(data, [1, 2, 3])
我认为此应用程序不需要numpy.take
。
答案 1 :(得分:0)
你应该只使用一个切片来获得一系列索引,不需要numpy.take
,这是一个花式索引的快捷方式。
data_extracted = data[1:4]
答案 2 :(得分:0)
正如其他人所提到的,在这种情况下,您可以使用花式索引。但是,如果您需要使用np.take,例如切片的轴是可变的,您可以尝试:
axis=0
data.take(range(1,4), axis=axis)
注意:这可能比以下速度慢:
data_extracted = data[1:4]