Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按给定的数字重新缩放numpy数组?_Python_Arrays_Numpy - Fatal编程技术网

Python 按给定的数字重新缩放numpy数组?

Python 按给定的数字重新缩放numpy数组?,python,arrays,numpy,Python,Arrays,Numpy,我有一个numpy数组,如下所示: arr = np.array([1,2,3,4,5,6,7,8,9,10]) 需要根据给定的因子重新调整它的比例。例如,如果我将其重新缩放2,则生成的数组大小为其大小的一半,并丢弃介于两者之间的值以生成如下内容: rescaled_arr = [2,4,6,8,10] 有没有一种方法或东西可以实现这一点?我对numpy不是很熟悉。最好的方法是引用数组的自定义子集 indices = range(1,len(arr),2) rescaled_arr = ar

我有一个numpy数组,如下所示:

arr = np.array([1,2,3,4,5,6,7,8,9,10])
需要根据给定的因子重新调整它的比例。例如,如果我将其重新缩放2,则生成的数组大小为其大小的一半,并丢弃介于两者之间的值以生成如下内容:

rescaled_arr = [2,4,6,8,10]

有没有一种方法或东西可以实现这一点?我对numpy不是很熟悉。

最好的方法是引用数组的自定义子集

indices = range(1,len(arr),2)
rescaled_arr = arr[indices]
Indexes对象获取原始数组的所有索引的子集,从1开始,按步骤2进行,直到数组结束。然后,重新缩放的_arr获取这些索引的值

要概括这一点,范围的起点是您想要开始的索引,步长是您想要的索引之间的距离。例如,如果您希望每三个索引都从第0个索引开始,则可以使用

indices = range(0,len(arr),3)

在这种情况下,“重新缩放”是什么意思?例如,在这种情况下,是否可以将阵列重新缩放3?如果是这样,那么结果数组是什么呢?除非你有更具体的想法,否则你可以通过切片来做到这一点:
arr[1::2]
你真正的意思是调整大小。您可以使用此NumPy符号提取其他每一个奇数元素:
new\u arr=arr[0::2]
,或其他每一个偶数元素:
new\u arr=arr[1::2]