我需要连接两个相同尺寸但形状不同的矢量

时间:2019-08-03 17:00:29

标签: python numpy

我有一个大小为y的向量4 x 1,还有另一个大小为y2的向量4 x 1,我将向量y和实数和虚数连接在一起y2的各个部分,并得到两个具有相同维但形状不同的不同矢量! 。 。我不知道两者之间有什么区别。

例如,这是第一个代码:

import numpy as np

h = np.random.randn(4, 4) + 1j * np.random.randn(4, 4)
x = np.array([[1 + 1j], [0 + 0j], [0 + 0j], [0 + 0j]])
y = h @ x
n = 3
y2 = np.zeros((1, 4), dtype=np.complex)
for ii in range(n):
    y2[: , ii] = np.linalg.pinv(h[: , ii].reshape(-1,1)).dot(y)
y_con = np.concatenate((np.real(y2),np.imag(y2)))
y_m = np.absolute(y)
Y3 = np.concatenate([y_con.reshape(-1,1), y_m])

因此,在这种情况下,当我检查其形状时,输出Y3是尺寸为12 x 1的向量,它是(12,1)

现在,让我们以另一种方式运行代码:

import numpy as np

h = np.random.randn(4, 4) + 1j * np.random.randn(4, 4)
x = np.array([[1 + 1j], [0 + 0j], [0 + 0j], [0 + 0j]])
y = h @ x

y2 = np.linalg.pinv(h).dot(y)
y_con = np.concatenate((np.real(y2),np.imag(y2)))
y_m = np.absolute(y)
Y3 = np.concatenate([y_con, y_m])

在这种情况下,Y3是尺寸为12,的矢量,当我检查其形状时,它就是(12,)

首先,我不知道两个向量在形状上有什么区别? ..并且我要使用第一个代码来获取尺寸为(12,)而不是(12,1)的代码?我怎样才能做到这一点 ?

1 个答案:

答案 0 :(得分:2)

您创建了一个二维的“列”向量。只需在第一个代码的最后一行的末尾添加.flatten(),即可创建一维“行”向量。