合并 numpy 矩阵中的列

merge columns in numpy matrix

我有一个像这样的 NumPy 矩阵(它可以有几列,这只是一个例子:

array([[nan, nan],
       [nan, nan],
       ['value 1', nan],
       [nan, nan],
       [nan, nan],
       [nan, 'value 2']], dtype=object)

我需要合并此矩阵中的所有列,将 nan 值替换为相应的非 nan 值(如果存在)。示例输出:

array([[nan],
       [nan],
       ['value 1'],
       [nan],
       [nan],
       ['value 2']], dtype=object)

有没有办法使用 NumPy 中的一些内置函数来实现这一点?

编辑:如果单行中有多个非南值,我将取第一个非南值。

值可以是字符串、浮点数或整数

查找第一列为 nan 的行。这是有效的,因为 nan!=nan:

rows = arr[:,0] != arr[:,0]

用第二个元素更新每个选定行的第一个元素:

arr[rows,0] = arr[rows,1]

Select第一列:

arr[:,[0]]