题
我想在 numpy. 。假设我有两个阵列, a
和 b
:
>>> a
array([[ 1, 10],
[ 2, 20],
[ 5, 30]])
>>> b
array([[ 1, 11],
[ 3, 31],
[ 4, 41]])
我想将其拼接到以下数组中, c
:
>>> c
array([[ 1., 10.],
[ 2., 20.],
[ 3., nan],
[ 4., nan],
[ 5., 30.]])
也就是说,我将值从第一列的第一列中拼写起来 b
进入 a
不用困扰第二列。
我当然可以很容易地实现这一目标,但是让Numpy为我做这件事会更好。那可能吗?
解决方案
Mishaf的答案仅缺少最后一步 - 使最后一列的条目独一无二。完整的代码来获取您的 c
(除了dtype,它从 int
至 float
在您的帖子中)是
b[:,1]=numpy.nan
c = numpy.r_[a, b]
c.sort(0)
c = c[numpy.unique(c[:,0], True)[1]]
其他提示
您可以将两者堆叠在一起,然后排序。但是,这并不能照顾您有两次索引的事实。不确定这是一个很好的改进...
b[:,1]=np.nan
c = np.vstack((a,b))
c.sort(0)
我认为没有什么 numpy 要做到这一点。您是否完全需要该结果(按顺序,第二列带有未定义值)?也许有一些接近的东西仍然对最终目标有用。
不隶属于 StackOverflow