如何堆叠浮点型NumPy数组?解决堆叠时的TypeError错误
解决NumPy数组堆叠的TypeError问题
错误原因
你触发的TypeError是因为np.stack()的参数使用错误:np.stack()要求第一个参数是数组的序列(如列表、元组),而不是将两个数组作为独立参数传入。你写的np.stack(a,b,...)会把第二个数组b误判为指定堆叠轴的参数(该参数要求是整数类型),因此抛出类型错误。
正确实现方式
以下几种方法都能实现你预期的堆叠效果:
方法1:修正np.stack()的参数格式
将两个数组放入列表中作为第一个参数传入,默认以轴0堆叠(垂直方向):
import numpy as np a = np.array([.6,.5]) b = np.array([.2,.3]) result = np.stack([a, b], dtype=float) print(result)
输出结果:
[[0.6 0.5] [0.2 0.3]]
方法2:使用np.vstack()(垂直堆叠)
np.vstack()是专门用于垂直堆叠一维数组为二维数组的函数,用法更直观:
result = np.vstack([a, b])
方法3:直接用np.array()构造
由于两个一维数组长度一致,直接将它们放入列表传入np.array()即可生成目标二维数组:
result = np.array([a, b], dtype=float)
内容的提问来源于stack exchange,提问作者Ankush Pandit
相关产品推荐
相关产品推荐

