簡體   English   中英

“ ValueError:x和y必須具有相同的第一維”的不同情況

[英]A different situation of “ValueError: x and y must have same first dimension”

我想知道為什么相同的代碼在Spyder和Pycharm中的運行方式不同? 它在Spyder中顯示圖,但在Pycharm中不顯示。 盡管存在相同的錯誤,但結果卻不同。 我不知道如何處理,我在stackoverflow中尋找答案,所有答案都說x和y的長度不同,但是我不知道如何在示例中更正。

import numpy as np
from numpy.linalg import inv
import matplotlib.pyplot as plt

np.random.seed(1)

N = 30

mean = (1, 2)
cov = [[1.8, 0], [0, 1.8]]
x1 = np.random.multivariate_normal(mean, cov, N)
mean = (2, 1)
x2 = np.random.multivariate_normal(mean, cov, N)

x12 = np.concatenate((x1, x2), axis=0)

mean = (1, -1)
x3 = np.random.multivariate_normal(mean, cov, N)
mean = (1.5, -1.5)
x4 = np.random.multivariate_normal(mean, cov, N)

x34 = np.concatenate((x3, x4), axis=0)

plt.plot(x12[:, 0], x12[:, 1], 'o', color='b')
plt.plot(x34[:, 0], x34[:, 1], 'o', color='r')

X = np.concatenate((x12, x34), axis=0)
X_1 = np.concatenate((np.ones((120, 1)), X), axis=1)

y = np.ones(2*N)
y = np.concatenate((y, 0*y), axis=0)

beta = np.dot(inv(np.dot(X_1.transpose(), X_1)),
              np.dot(X_1.transpose(), y))

intercept = beta[0]  # beta_0
coef = beta[:1]  # beta_1 and beta_2

# Calculate RSS
rss = np.dot(y - np.dot(X_1, beta), y - np.dot(X_1, beta))

print("\nThe estimated model parameters are")
print(intercept)
print(coef)
print(rss)

p1x = -3  # Left x limit
p2x = 6  # Right x Limit
p1y = (0.5 - beta[0] - beta[1]*p1x)/beta[2]  # Y value at p1x (left)
p2y = (0.5 - beta[0] - beta[1]*p2x)/beta[2]  # Y value at p2x (right)
Pts = np.array([[p1x, p1y], [p2x, p2y]])
# Now draw the boundary
plt.plot(Pts[:, 0], Pts[:1], '_', color='black')

謝謝你們的關注。 以下答案確實解決了我發布的錯誤,但是我仍然無法在Pycharm中獲得任何圖形。 我已經嘗試在末尾添加“ plt.show()”,但是它不起作用。 以下是我在控制台中得到的所有結果:

The estimated model parameters are
0.394336889526
[ 0.39433689]
15.2577282371

Pts是一個形狀為(2,2)的數組。 從該數組中,通過Pts[:, 0]選擇第一列,並通過Pts[:1]第一行。 但是形狀不同。 Pts[:, 0]是一維數組,而Pts[:1]是2D數組(盡管僅填充了一個維。

由於尚不清楚該問題的目的是什么,因此我不得不猜測,實際上您想繪制數組的第二列再次繪制第一列,這將使用Pts[:,1]

plt.plot(Pts[:, 0], Pts[:,1], '_', color='black')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM