使用不同元素合并/连接数组

nah*_*var 4 python matlab numpy vector

如何合并不同元素的混合(matlab风格)numpy

[array([ 0.]), 0.0, 0.0011627, 0.0, 2.69, 0.0, array([ 3.8269, 7.0184]), array([ 4.4e-16, 2.1e+00])]

(我尝试过np.concatenate,但显然它只需要数组作为输入).基本上,我想通过索引动态地连接矢量中的元素.我试过了:

 V = np.array([1,2,3,4,5,6])
 Y = np.array([7,8,9,10,11,12])

 Z = np.array([V[0:2],Y[0],V[3],Y[1:3],V[4:],Y[4:]])
Run Code Online (Sandbox Code Playgroud)

它工作,但内部有数组元素.我只想要一个平面的数字向量(Matlab风格),后来我用一堆这些向量做了一个矩阵(称为RES).即使是简单的

 np.savetxt('TT',RES,fmt='%1.1e') 
Run Code Online (Sandbox Code Playgroud)

失败,因为它期望浮动而不是内部的数组.

猜猜这应该很简单.np.hstack做的工作.但是有没有其他简单的方法来做Matlab样式索引和向量和标量的组合?

unu*_*tbu 18

你可以使用np.r_:

In [32]: Z = np.r_[V[0:2],Y[0],V[3],Y[1:3],V[4:],Y[4:]]

In [33]: Z
Out[33]: array([ 1,  2,  7,  4,  8,  9,  5,  6, 11, 12])
Run Code Online (Sandbox Code Playgroud)

  • @nahsivar如果解决了您的问题,请接受答案 (6认同)