質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2150閲覧

Jupyter NotebookにおけるValueErrorについて

sendo

総合スコア5

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/04/09 10:21

機会学習初心者です。
現在Jupyter Notebookで数学の基礎の部分に取り組んでおり、ガウス関数のグラフを書こうとしています。
与えられたサンプルコード(下に記載)のとおり入力してもValueErrorが出てしまいます。
実行環境は
Python 3.7.6
notebook 6.0.3

です。

コードが悪いのか実行環境に問題があるのかを教えていただけますでしょうか。

発生している問題・エラーメッセージ

エラーメッセージ ValueError Traceback (most recent call last) <ipython-input-4-074e12a40b6e> in <module> 35 Fig = plt.figure(1, figsize=(7, 3)) 36 Fig.add_subplot(1, 2, 1) ---> 37 show_contour_gauss(mu, sigma) 38 plt.xlim(X_range0) 39 plt.ylim(X_range1) <ipython-input-4-074e12a40b6e> in show_contour_gauss(mu, sig) 9 x1 = np.linspace(X_range1[0], X_range1[1], xn) 10 xx0, xx1 = np.meshgrid(x0, x1) ---> 11 x = np.c_[np.reshape(xx0, xn * xn, 1), np.reshape(xx1, xn * xn, 1)] 12 f = gauss(x, mu, sig) 13 f = f.reshape(xn, xn) <__array_function__ internals> in reshape(*args, **kwargs) C:\Anaconda3\lib\site-packages\numpy\core\fromnumeric.py in reshape(a, newshape, order) 299 [5, 6]]) 300 """ --> 301 return _wrapfunc(a, 'reshape', newshape, order=order) 302 303 C:\Anaconda3\lib\site-packages\numpy\core\fromnumeric.py in _wrapfunc(obj, method, *args, **kwds) 59 60 try: ---> 61 return bound(*args, **kwds) 62 except TypeError: 63 # A TypeError occurs if the object does have such a method in its ValueError: Non-string object detected for the array ordering. Please pass in 'C', 'F', 'A', or 'K' instead ### 該当のソースコード ```Python 3.7.6 ###ソースコード # リスト 4-5-(1) import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import axes3d %matplotlib inline # ガウス関数 def gauss(x, mu, sigma): N, D = x.shape c1 = 1 / (2 * np.pi)**(D / 2) c2 = 1 / (np.linalg.det(sigma)**(1 / 2)) inv_sigma = np.linalg.inv(sigma) c3 = x - mu c4 = np.dot(c3, inv_sigma) c5 = np.zeros(N) for d in range(D): c5 = c5 + c4[:, d] * c3[:, d] p = c1 * c2 * np.exp(-c5 / 2) return p # リスト 4-5-(2) x = np.array([[1, 2], [2, 1], [3, 4]]) mu = np.array([1, 2]) sigma = np.array([[1, 0], [0, 1]]) print(gauss(x, mu, sigma)) **リスト(1) ~ (2)までの実行結果** [0.15915494 0.05854983 0.00291502]

リスト 4-5-(3)

X_range0=[-3, 3]
X_range1=[-3, 3]

等高線表示 --------------------------------

def show_contour_gauss(mu, sig):
xn = 40 # 等高線表示の解像度
x0 = np.linspace(X_range0[0], X_range0[1], xn)
x1 = np.linspace(X_range1[0], X_range1[1], xn)
xx0, xx1 = np.meshgrid(x0, x1)
x = np.c_[np.reshape(xx0, xn * xn, 1), np.reshape(xx1, xn * xn, 1)]
f = gauss(x, mu, sig)
f = f.reshape(xn, xn)
f = f.T
cont = plt.contour(xx0, xx1, f, 15, colors='k')
plt.grid(True)

3D 表示 ----------------------------------

def show3d_gauss(ax, mu, sig):
xn = 40 # 等高線表示の解像度
x0 = np.linspace(X_range0[0], X_range0[1], xn)
x1 = np.linspace(X_range1[0], X_range1[1], xn)
xx0, xx1 = np.meshgrid(x0, x1)
x = np.c_[np.reshape(xx0, xn * xn, 1), np.reshape(xx1, xn * xn, 1)]
f = gauss(x, mu, sig)
f = f.reshape(xn, xn)
f = f.T
ax.plot_surface(xx0, xx1, f,
rstride=2, cstride=2, alpha=0.3,
color='blue', edgecolor='black')

メイン -----------------------------------

mu = np.array([1, 0.5]) # (A)
sigma = np.array([[2, 1], [1, 1]]) # (B)
Fig = plt.figure(1, figsize=(7, 3))
Fig.add_subplot(1, 2, 1)
show_contour_gauss(mu, sigma)
plt.xlim(X_range0)
plt.ylim(X_range1)
plt.xlabel('$x_0$', fontsize=14)
plt.ylabel('$x_1$', fontsize=14)
Ax = Fig.add_subplot(1, 2, 2, projection='3d')
show3d_gauss(Ax, mu, sigma)
Ax.set_zticks([0.05, 0.10])
Ax.set_xlabel('$x_0$', fontsize=14)
Ax.set_ylabel('$x_1$', fontsize=14)
Ax.view_init(40, -100)
plt.show()

### 試したこと anacondaに入っているnumpyを1.18.1に更新 リスト4-5-(3)を実行するとエラーが出ます。 ### 補足情報(扱う数式) ガウス関数の式は **x** = [x_0, x_1] y = a * exp[-(1/2)*{(**x**-**µ**)^T}*{**Σ**^-1(**x**-**µ**)}] パラメータ **µ** = [µ_0, µ_1] **Σ** = [[σ^2_0 σ_01], [σ_01 σ^2_1]] (共分散行列) a = (1/2π)*{1/Σ^(1/2)} 以上の式における **µ** = [1, 0.5], **Σ** = [[2 1], [1 1]] の時の示すグラフの描写を目指しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

下記でnumpy1.14と同じになるかと思います。 ※検証はご自身でお願いします。

Python

1x = np.c_[np.reshape(xx0, xn * xn, 'F'), np.reshape(xx1, xn * xn, 'F')]

投稿2020/04/09 12:45

meg_

総合スコア10760

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sendo

2020/04/09 13:10

解決しました。この度はご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問