numpy使用append合并3个1D数组触发TypeError错误求助
错误原因
报错由np.append的参数使用不符合规范导致:
np.append的语法为np.append(arr, values, axis=None),最多支持3个入参:- 第一个入参为待追加内容的目标数组
- 第二个入参为要追加的内容
- 第三个入参为可选的合并轴参数,必须为整数类型
- 代码中传入3个数组作为
np.append的入参,第三个数组arr2被识别为axis入参,数组类型不符合axis的整数要求,因此触发类型错误。
修正方案
提供两种可实现需求的写法:
写法1:多次调用np.append
import numpy as np import random arr = np.random.randint(10, size=(1,)) arr1 = np.random.randint(20, size=(1,)) arr2 = np.random.randint(30, size=(1,)) print(arr) print(arr1) print(arr2) aparr = np.append(np.append(arr, arr1), arr2) print(aparr)
写法2:使用np.concatenate(多数组合并场景更推荐,性能更优)
import numpy as np import random arr = np.random.randint(10, size=(1,)) arr1 = np.random.randint(20, size=(1,)) arr2 = np.random.randint(30, size=(1,)) print(arr) print(arr1) print(arr2) aparr = np.concatenate((arr, arr1, arr2)) print(aparr)
内容的提问来源于stack exchange,提问作者Ashish Gupta
相关产品推荐
相关产品推荐

