如何堆叠不同形状的NumPy数组并生成指定格式CSV?
解决不同形状NumPy数组组合并生成CSV的问题
由于两个数组维度不兼容,直接堆叠会报错,需要先根据目标CSV的格式调整数组形状,以下是两种常见场景的实现方案:
场景1:将(4,1)数组作为每行前缀与(240,320)数组水平组合
如果目标CSV是240行,每行包含4个重复的(4,1)数组元素,加上(240,320)数组的对应行元素,操作步骤如下:
扩展小数组形状以匹配大数组行数:
import numpy as np import pandas as pd # 示例数组,替换为你的实际数组 arr_small = np.array([[1], [2], [3], [4]]) # 形状(4,1) arr_large = np.random.rand(240, 320) # 形状(240,320) # 将(4,1)转为(1,4)后重复240次,得到(240,4)的数组 arr_small_expanded = np.tile(arr_small.T, (240, 1))水平拼接两个数组:
combined_arr = np.hstack([arr_small_expanded, arr_large])保存为CSV文件:
pd.DataFrame(combined_arr).to_csv('horizontal_combined.csv', index=False, header=False)
场景2:将(240,320)数组拉平后与(4,1)数组垂直组合
如果目标CSV是单列,包含(4,1)的4个元素,加上(240,320)拉平后的所有元素,操作步骤如下:
拉平大数组为单列:
arr_large_flattened = arr_large.flatten().reshape(-1, 1) # 形状(76800,1)垂直拼接两个数组:
combined_arr = np.vstack([arr_small, arr_large_flattened])保存为CSV文件:
pd.DataFrame(combined_arr).to_csv('vertical_combined.csv', index=False, header=False)
注意事项
- 如果目标CSV格式与上述场景不同,需明确具体的行列结构,调整数组变形逻辑(比如用
np.repeat替换np.tile实现不同的重复规则)。 - 若不需要表头,保持
header=False;如需自定义表头,可传入header=['col1', 'col2', ...]参数。
内容的提问来源于stack exchange,提问作者Bingo Man
相关产品推荐
相关产品推荐

