Numpy和Pandas连接

iyfamqjs  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(96)

我知道,对于Numpy连接,除了连接轴之外,数组的维数必须相同。但是对于Pandas拼接,即使非拼接轴的尺寸不同,也是允许的,并且只会将这些空单元格填充为“NaN”。我想知道造成这种差异的原因是什么?
沿着列的2个不同数组的Numpy串联

s1 = np.arange(3).reshape(3,1) 
s2 = np.arange(2).reshape(2,1)  
result=np.concatenate([s1,s2],axis=1)  
print(result) 

Traceback (most recent call last):
File "example.py", line 8, in <module>
result=np.concatenate([s1,s2],axis=1)
File "<__array_function__ internals>", line 180, in concatenate
ValueError: all the input array dimensions for the concatenation axis must match exactly, but        along dimension 0, the array at index 0 has size 3 and the array at index 1 has size 2

字符串
Pandas沿着列串联2个不同系列

pd1 = Series([1,2,3])  
pd2 = Series([4,5])  
print(pd1)  
print(pd2)  
result=pd.concat([pd1,pd2],axis=1)  
print(result)

   0    1
0  1  4.0
1  2  5.0
2  3  NaN

ryhaxcpt

ryhaxcpt1#

在我的理解中,numpy是为了非常高效地执行矩阵运算而构建的,而矩阵运算需要兼容的维度。在您的示例中,数组大小不同,并且串联会导致结构不规则或参差不齐,这与numpy不兼容。
pandas是一种更通用的数据制表工具,它通常是异构的,具有混合大小、混合类型、缺失值等。pandas可以通过用NaN填充空格来处理交错数组,因为它不假设数据维度需要与矩阵操作兼容。

相关问题