[英]numpy.take range of array elements Python
我有一个整数数组。
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
将数组的一部分存储在单独的数组中?
您可以直接切片列表。
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
。
您应该只使用一个切片来获取一系列索引,就不需要numpy.take
,它旨在用作精美索引的快捷方式。
data_extracted = data[1:4]
正如其他人提到的,在这种情况下,您可以使用花式索引。 但是,如果您需要使用np.take,例如,您要切片的轴是可变的,则可以尝试:
axis=0
data.take(range(1,4), axis=axis)
注意:这可能比以下速度慢: data_extracted = data[1:4]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.