考虑以下数组
import numpy as np
a1 = np.array([1,2,3],dtype='object')
a2 = np.array([["A"],["D"],["R"]],,dtype='object')
a3 = np.array([["A","F"],["D"],["R"]],dtype='object')
以下两个给出了不同类型的输出。没想到会这样。这是正常的吗?
np.c_[a1,a2]
#array([[1, 'A'],
# [2, 'D'],
# [3, 'R']], dtype=object)
np.c_[a1,a3]
#array([[1, list(['A', 'F'])],
# [2, list(['D'])],
# [3, list(['R'])]], dtype=object)
为什么第一个有效而不是第二个表达式?a2
我看不出和之间有什么区别a3
。此外,哪种连接方法(c_、堆栈、连接)将输出相同类型的输出,而无需添加其他代码行,例如检查输出数据类型并根据需要进行转换。
np.concatenate((a1,a2),axis=0) # Error: ValueError: all the input arrays must have same number of dimensions
np.concatenate((a1,a3),axis=0) # works
#array([1, 2, 3, list(['A', 'F']), list(['D']), list(['R'])], dtype=object)