以下のコードの3行目のscatterの中身がどういう意味なのかよくわかりません。
どなたか教えてください。
よろしくお願いします。
rng = np.random.RandomState(1)
X = np.dot(rng.rand(2, 2), rng.randn(2, 200)).T
plt.scatter(X[:, 0], X[:, 1])
plt.axis
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
回答1件
0
ベストアンサー
こちらScatterの中身になります.
GitHub - matplotlib/v3.6.0/lib/matplotlib/pyplot.py#L2773-L2784
追記
構文の意味を知りたいなら,構文の要素で検索すると良いでしょう.今回は「ndarray コロン 意味」でしょうか.もしくは「numpy コロン 意味」でも良いです.出てきた以下のサイトを参考に例示します.
NumPy配列ndarrayの要素・行・列を取得(抽出)、代入 - 整数値(インデックス)で指定
2階以上のテンソルに対して使われるX[:, 0], X[:, 1]
の意味はそれぞれ,列方向に0番目の要素全て,及び列方向に1番目の要素全てを取得するものです.2階のテンソルに限り,転置して行方向に0番目の要素の取得X.T[0], X.T[0, :]
することや,転置して行方向に1番目の要素を取得するX.T[1], X.T[1, :]
のと同じ動作になります.
Python
1>>> import numpy as np 2>>> X = np.arange(0, 3 * 3, 1).reshape(3, 3) 3>>> X 4array([[0, 1, 2], 5 [3, 4, 5], 6 [6, 7, 8]]) 7>>> X[:, 0] 8array([0, 3, 6]) 9>>> X.T[0] 10array([0, 3, 6]) 11>>> X[:, 1] 12array([1, 4, 7]) 13>>> X.T[1] 14array([1, 4, 7])
逆に言えば,例示いただいたコードX = np.dot(rng.rand(2, 2), rng.randn(2, 200)).T
の最後で転置.T
が行われていますが,これが無ければ,plt.scatter(X[0], X[1])
で十分でした.
3階以上のテンソルに対して使われる(カラー画像処理でよく見る)X[:, :, 0], X[:, :, 1]
の意味としては,深さ方向に0番目の要素全て,及び1番目の要素全てを取得するものです.画像配列であるとしたとき,HWC形式のテンソルかつフォーマットがRGBであれば,0番目に赤,1番目に緑,2番目に青の輝度情報が入っていることになりますので,X[:, :, 0]
で赤色のレイヤを取得,X[:, :, 1]
で緑色のレイヤを取得,といった具合の意味を持ちます.
Python
1>>> import numpy as np 2>>> X = np.arange(0, 3 * 3 * 3, 1).reshape(3, 3, 3) 3>>> X 4array([[[ 0, 1, 2], 5 [ 3, 4, 5], 6 [ 6, 7, 8]], 7 8 [[ 9, 10, 11], 9 [12, 13, 14], 10 [15, 16, 17]], 11 12 [[18, 19, 20], 13 [21, 22, 23], 14 [24, 25, 26]]]) 15>>> X[:, :, 0] 16array([[ 0, 3, 6], 17 [ 9, 12, 15], 18 [18, 21, 24]]) 19>>> X[:, :, 1] 20array([[ 1, 4, 7], 21 [10, 13, 16], 22 [19, 22, 25]])
N次元配列においてSquare brackets[]
を用いてアクセスされるデータは,コロン:
のみで全選択,a:b
で範囲選択を行って要素を抽出することになります.上の例において,いずれも全選択:
と単一要素選択を併用したものです.n次元の配列(N-dimensional array)を扱えるのでndarrayと呼ばれます.
投稿2022/10/09 13:11
編集2022/10/09 22:10総合スコア1161
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
関連した質問
Q&A
解決済
maplotlibを用いて出力したグラフにマウスのカーソルをあわせて値を表示したい。
回答1
クリップ1
更新
2019/02/16
Q&A
解決済
グラフの色を条件で分けたい
回答1
クリップ0
更新
2019/05/18
Q&A
解決済
Pythonのmatplotlibでグラフ(subplot)の表示範囲を指定する方法がわかりません。
回答2
クリップ0
更新
2019/07/31
Q&A
解決済
chart.jsの散布図で点と点を線で繋ぐ方法
回答1
クリップ1
更新
2019/08/09
Q&A
解決済
missing 1 required positional argument: 'request'
回答1
クリップ0
更新
2020/04/01
Q&A
解決済
Pythonのpandasでplotがされない理由。
回答1
クリップ0
更新
2021/08/14
Q&A
解決済
シグモイド曲線へのフィッティングがうまくいきません。
回答1
クリップ0
更新
2021/10/27
Q&A
解決済
plotlyで欠損値が入る場合
回答1
クリップ0
更新
2021/11/27
同じタグがついた質問を見る
MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。
Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。