如何用for循环提取二维NumPy数组第3项并分割(4061,3)数组为(1,3)子数组
将(4061,3) NumPy数组分割为(1,3)子数组并存入列表
假设你的二维数组名为arr,可以通过遍历数组的每一行,调整形状后存入列表:
import numpy as np # 生成模拟的(4061, 3)数组 arr = np.random.rand(4061, 3) sub_array_list = [] for row in arr: # 将(3,)的行转换为(1,3)的子数组 sub_arr = row[np.newaxis, :] sub_array_list.append(sub_arr)
也可以用reshape实现相同的形状转换:
sub_arr = row.reshape(1, 3)
遍历结束后,sub_array_list中就包含了4061个形状为(1,3)的NumPy子数组。
用for循环提取二维NumPy数组的每第3个元素
以下分两种常见场景说明:
提取每行的第3个元素(索引从0开始,对应索引2)
row_third_elements = [] for row in arr: # 取当前行的第3个元素 elem = row[2] row_third_elements.append(elem)
提取数组中每第3行的全部元素
every_third_row_list = [] # 从第0行开始,每隔3行取一次 for idx in range(0, arr.shape[0], 3): target_row = arr[idx] every_third_row_list.append(target_row) # 若需要保持(1,3)形状,可添加形状调整: # every_third_row_list.append(target_row[np.newaxis, :])
内容的提问来源于stack exchange,提问作者tempaccountforissue
相关产品推荐
相关产品推荐

