给定以下numpy数组:
arr = np.array([0, 1, 2, 3, 4, 5])
什么样的iterable会从arr
返回长度为x
的子数组?(假设len(arr)
是x
的倍数)
x = 2
sub_arrays = [sub_arr for sub_arr in iterable(arr, x)]
sub_arrays = [ np.ndarray([0,1]),np.ndarray([2,3]),np.ndarray([4,5])]
我知道使用start
、stop
和step
参数可以进行数组切片,但这会返回单个元素:
x = 2
sub_elements = [sub_elem for sub_elem in arr[::x]]
sub_elements = [0,2,4]
2条答案
按热度按时间mkh04yzy1#
要迭代numpy数组并获得特定长度的子数组,可以使用numpy.reshape函数。通过将数组整形为所需的形状,可以获得指定长度的子数组。下面是一个例子:import numpy as np
在本例中,np.reshape用于将数组arr整形为长度为x的子数组reshape函数中的参数-1允许numpy自动确定该尺寸的适当大小。得到的sub_arrays将是一个包含子数组的2D numpy数组:
如果需要,还可以将每个子数组转换为单独的ndarray:
这将给你一个你指定的numpy数组列表:
有一个好的编码!
bgibtngc2#
你应该使用np.array_split