gpt4 book ai didi

python - 迭代 numpy 数组以获取子数组

转载 作者:行者123 更新时间:2023-12-03 07:54:01 27 4
gpt4 key购买 nike

给定以下 numpy 数组:

arr = np.array([0, 1, 2, 3, 4, 5])

什么迭代器会从 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] ) ]

我知道可以使用 startstopstep 参数进行数组切片,但会返回单个元素:

x = 2
sub_elements = [sub_elem for sub_elem in arr[::x]]

sub_elements = [0, 2, 4]

最佳答案

要迭代 numpy 数组并获取特定长度的子数组,可以使用 numpy.reshape 函数。通过将数组 reshape 为所需的形状,可以获得指定长度的子数组。这是一个例子:将 numpy 导入为 np

arr = np.array([0, 1, 2, 3, 4, 5])
x = 2

sub_arrays = np.reshape(arr, (-1, x))

在此示例中,np.reshape 用于将数组 arr reshape 为长度为 x 的子数组。 reshape 函数中的参数 -1 允许 numpy 自动确定该维度的适当大小。生成的 sub_arrays 将是包含子数组的 2D numpy 数组:

array([[0, 1],
[2, 3],
[4, 5]])

如果需要,您还可以将每个子数组转换为单独的 ndarray:

sub_arrays = [np.array(sub_arr) for sub_arr in sub_arrays]

这将为您提供指定的 numpy 数组列表:

[array([0, 1]), array([2, 3]), 
array([4, 5])]

祝你编码愉快!

关于python - 迭代 numpy 数组以获取子数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76493293/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com