我有以下两个numpy数组:
np.random.seed(1)
y2=np.random.standard_normal((50,1))
lambda_=np.zeros((100,2));
lambda_[0]=np.random.gamma(1,1,2);
但是当我尝试做的时候
np.dot(y2,lambda_[0])
或其转置版本:
np.dot(y2,lambda_[0].T)
我得到错误ValueError:矩阵未对齐
现在我明白我可以通过使用numpy矩阵来绕过这个错误,但是没有转换为np.matrix效率低下?我是python的新手所以也许我错了。只是尝试尽可能快地编写代码。
答案 0 :(得分:2)
y2
的形状为(50, 1)
,lambda_[0]
的形状为(2,)
,因此dot()
将其视为矩阵向量乘法,因此,抛出错误。如果您希望将第二个参数视为(1,2)
矩阵,则需要对其进行整形:
np.dot(y2,lambda_[0].reshape(1,2))
或者,使用lambda_
而不是1D的2D视图:
np.dot(y2,lambda_[0:1])
答案 1 :(得分:1)
尽管使用numpy实在是太容易了。您可以使用python进行以下操作。
df = pd.DataFrame()
for i in range(20):
df[f'Col {i}'] = np.random.randn(20)
fig, axes = plt.subplots()
for i in range(20):
axes.scatter([i+0.5]*len(df), df[f'Col {i}'])
axes.set_xticks(range(20))
plt.show()