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

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

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

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

Python

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

Q&A

解決済

1回答

489閲覧

matplotlib scatterについて

Ryo486

総合スコア7

Matplotlib

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

Python

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

0グッド

0クリップ

投稿2022/10/09 12:55

以下のコードの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

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

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

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

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

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

meg_

2022/10/09 13:13

> 以下のコードの3行目のscatterの中身がどういう意味なのかよくわかりません。 "中身"というのは関数の仕様のことですか?
Ryo486

2022/10/09 13:18

すみません、関数の使用ではなくX[:, 0], X[:, 1]が何を意味しているのかわからないという意味です。
meg_

2022/10/09 16:38

補足情報は質問に追記しましょう。(質問は編集できます)
guest

回答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
PondVillege

総合スコア1579

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問