使用np.concatenate拼接Numpy数组触发TypeError问题求助
解决
np.concatenate报错并得到预期输出 错误原因
你调用np.concatenate的方式存在两个问题:
np.concatenate的第一个参数必须是数组的可迭代对象(如列表、元组),你直接传入两个独立数组A和J[0],导致第二个数组被误识别为axis参数,和后面显式传递的axis=1冲突,触发TypeError。A是一维数组,仅支持axis=0,axis=1对一维数组无效。
修正后的代码
要得到你预期的排序后合并结果,代码如下:
import numpy as np A = np.array([1, 3, 5, 7, 9, 10, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23]) J = [[4, 6, 8, 11, 17, 19]] J = np.array(J) # 先拼接两个一维数组,再排序 T = np.concatenate([A, J[0]]) T = np.sort(T) print(T)
输出结果
array([ 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23])
补充说明
如果仅需要单纯拼接(不排序),直接执行np.concatenate([A, J[0]])即可,结果为A的元素后紧跟J[0]的元素:
array([ 1, 3, 5, 7, 9, 10, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 4, 6, 8, 11, 17, 19])
内容的提问来源于stack exchange,提问作者user19862793
相关产品推荐
相关产品推荐

