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

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

新規登録して質問してみよう
ただいま回答率
85.35%
多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

機械学習

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

Python

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

Q&A

解決済

1回答

2346閲覧

(20, 14)の配列をヒートマップなどで可視化したい

ttt_

総合スコア6

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

機械学習

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

Python

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

0グッド

0クリップ

投稿2020/07/26 01:49

前提・実現したいこと

現在SOMのコードを作成しています。計算部分のコードは作り終えているのですが、データを可視化することができず困っています。

用いているデータはhttps://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/wine.txt
より取得した14次元のデータで、SOMの結果(20, 14)まで削減されたデータを5*4のマップ上に配置したいと考えています。

この時、imshow()でヒートマップを作って多次元配列を可視化させようとしているのですが、この場合データは3次元でしか可視化させることはできないのでしょうか。

色で可視化できなければ他の方法でも構いません。
何か(20, 14)のデータを可視化する方法はないでしょうか。
分かる方がいたら教えてください。

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

Invalid shape (5, 4, 14) for image data

該当のソースコード

python

1plt.imshow(som.node.reshape(5, 4, 14),interpolation='none')

使用データ 形状:(20, 14)

array([[-1.14015082, 0.90135713, -0.2712945 , 0.44944055, -0.5696003 ,
0.65842059, 0.93687176, 1.02189663, -0.5393721 , 0.66171331,
0.24787164, 0.47331752, 0.73822515, 1.15473285],
[-0.74132768, 0.10449779, -0.4947401 , -0.15961238, -0.50207351,
0.09447913, 0.42468574, 0.54952434, -0.52622119, 0.31766716,
-0.52425621, 0.68330237, 0.74666059, 0.35222987],
[ 0.07973534, -0.88765294, -0.51117097, -0.80849794, -0.26971703,
-0.33611565, 0.62153313, 0.46772073, -0.87509353, 0.76303107,
-0.70077204, 0.47695642, 0.61319992, -0.5856571 ],
[ 0.07973544, -1.18328646, -0.65786114, -1.35678862, -0.25085108,
-0.87211574, 0.11734875, 0.16945948, -0.29037471, 0.14565319,
-0.94138588, 1.26113334, 0.64549694, -1.04031324],
[-1.05178005, 0.89537747, -0.28742898, 0.45190474, -0.52829235,
0.66042997, 0.8958526 , 0.95938267, -0.51811312, 0.65221666,
0.2917176 , 0.41166617, 0.66335277, 1.10241742],
[ 0.0796272 , -0.09623709, 0.26275378, 0.0035798 , 0.45054781,
0.315624 , -0.21982524, -0.33453708, -0.37643285, -0.58675192,
-0.88662376, -0.16371065, -0.13255864, -0.60367849],
[ 0.07973544, -0.96534565, -0.47321069, -0.37145038, 0.45754075,
-0.66050405, -0.16669892, 0.08544775, 0.09634391, -0.21520568,
-1.0473377 , 0.17944354, 0.33023961, -1.03191574],
[ 0.07973544, -1.324049 , -0.79467622, -1.03397154, 0.17260256,
-1.0521393 , -0.42814193, -0.57846526, -0.026388 , -0.6230217 ,
-1.17737513, 0.75493234, 0.11837749, -0.70464622],
[ 1.3699993 , 0.73815824, -0.73477115, 0.52301404, 0.60043763,
0.71816151, -0.22405532, -0.75023483, 0.06544549, 0.39992447,
1.50606149, -1.27938478, -1.38965455, -0.32356845],
[ 0.07975102, -0.89067666, 0.16439876, 0.37716791, 0.42821095,
0.15810431, -0.84299972, -0.38221716, 0.96936718, -0.66547619,
-0.59875571, 0.22549227, -0.49885858, -0.55220611],
[ 0.07973544, -1.04161557, -0.15339488, 0.00537591, 0.50456337,
-0.75207745, -0.88053709, -0.43974047, 1.33492589, -0.37545639,
-0.91494615, 0.09865782, -0.20657082, -0.74148648],
[ 0.07973544, -1.32256315, -0.79129363, -1.02846333, 0.1743771 ,
-1.05056216, -0.43055898, -0.57776798, -0.01918079, -0.62175009,
-1.17599947, 0.75143992, 0.1166349 , -0.7048248 ],
[ 1.36999975, 0.24369967, 0.70495907, 0.55380103, 0.73857716,
0.42734423, -0.80219476, -1.10054911, 0.03465823, -0.72462869,
0.9146511 , -1.022045 , -1.19200841, -0.33212075],
[ 0.7248219 , -0.27183095, 0.19125615, -0.29706511, 0.15125413,
-1.03200929, -0.75118786, -0.94530905, 1.95357646, -0.27244743,
0.02880655, -0.71064065, -1.19950346, -0.52204495],
[ 0.07973567, -0.28443601, 0.97842632, -1.40819844, -1.04578329,
-1.3819206 , -1.06264527, -0.77999701, 0.54794105, -1.32895121,
-0.7153178 , -1.12575341, -0.69229129, -1.19027159],
[ 0.07973544, -0.28443601, 0.9784266 , -1.40819883, -1.04578372,
-1.38192073, -1.06264538, -0.77999695, 0.54794055, -1.32895159,
-0.71531807, -1.12575356, -0.69229111, -1.19027183],
[ 1.36999976, 0.19354476, 1.14586033, 0.15145175, 0.56659032,
-0.23033608, -1.10499162, -1.3278774 , 0.97522107, -0.83738492,
1.0693244 , -1.27875472, -1.34904943, -0.38092924],
[ 1.36993791, -0.98611838, 0.62087573, -0.16956712, -0.14817347,
-0.26204303, -1.66981469, -1.54097017, 0.30667062, -1.50400252,
0.19060869, -1.30128376, -1.10099101, -0.75223893],
[ 0.08451633, -0.28667445, 0.97764232, -1.4042843 , -1.04319818,
-1.37807184, -1.06498225, -0.78297929, 0.54667054, -1.33005572,
-0.71186578, -1.12698887, -0.69403756, -1.18886308],
[ 0.07973544, -0.28407297, 0.97896926, -1.4088766 , -1.04652705,
-1.38222271, -1.06273268, -0.78016007, 0.54756319, -1.32940874,
-0.71522236, -1.12634062, -0.69252397, -1.19048701]])

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

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

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

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

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

guest

回答1

0

ベストアンサー

SOMについてはわかりませんが、plt.imshow(som.node.reshape(5, 4, 14),interpolation='none')というコードから推測すると、描画したいグラフは、以下のようなものでしょうか。

Python

1import numpy as np 2import matplotlib.pyplot as plt 3from mpl_toolkits.mplot3d import Axes3D 4 5a = np.array([[-1.14015082, 0.90135713, -0.2712945 , 0.44944055, -0.5696003 , 60.65842059, 0.93687176, 1.02189663, -0.5393721 , 0.66171331, 70.24787164, 0.47331752, 0.73822515, 1.15473285], 8[-0.74132768, 0.10449779, -0.4947401 , -0.15961238, -0.50207351, 90.09447913, 0.42468574, 0.54952434, -0.52622119, 0.31766716, 10-0.52425621, 0.68330237, 0.74666059, 0.35222987], 11[ 0.07973534, -0.88765294, -0.51117097, -0.80849794, -0.26971703, 12-0.33611565, 0.62153313, 0.46772073, -0.87509353, 0.76303107, 13-0.70077204, 0.47695642, 0.61319992, -0.5856571 ], 14[ 0.07973544, -1.18328646, -0.65786114, -1.35678862, -0.25085108, 15-0.87211574, 0.11734875, 0.16945948, -0.29037471, 0.14565319, 16-0.94138588, 1.26113334, 0.64549694, -1.04031324], 17[-1.05178005, 0.89537747, -0.28742898, 0.45190474, -0.52829235, 180.66042997, 0.8958526 , 0.95938267, -0.51811312, 0.65221666, 190.2917176 , 0.41166617, 0.66335277, 1.10241742], 20[ 0.0796272 , -0.09623709, 0.26275378, 0.0035798 , 0.45054781, 210.315624 , -0.21982524, -0.33453708, -0.37643285, -0.58675192, 22-0.88662376, -0.16371065, -0.13255864, -0.60367849], 23[ 0.07973544, -0.96534565, -0.47321069, -0.37145038, 0.45754075, 24-0.66050405, -0.16669892, 0.08544775, 0.09634391, -0.21520568, 25-1.0473377 , 0.17944354, 0.33023961, -1.03191574], 26[ 0.07973544, -1.324049 , -0.79467622, -1.03397154, 0.17260256, 27-1.0521393 , -0.42814193, -0.57846526, -0.026388 , -0.6230217 , 28-1.17737513, 0.75493234, 0.11837749, -0.70464622], 29[ 1.3699993 , 0.73815824, -0.73477115, 0.52301404, 0.60043763, 300.71816151, -0.22405532, -0.75023483, 0.06544549, 0.39992447, 311.50606149, -1.27938478, -1.38965455, -0.32356845], 32[ 0.07975102, -0.89067666, 0.16439876, 0.37716791, 0.42821095, 330.15810431, -0.84299972, -0.38221716, 0.96936718, -0.66547619, 34-0.59875571, 0.22549227, -0.49885858, -0.55220611], 35[ 0.07973544, -1.04161557, -0.15339488, 0.00537591, 0.50456337, 36-0.75207745, -0.88053709, -0.43974047, 1.33492589, -0.37545639, 37-0.91494615, 0.09865782, -0.20657082, -0.74148648], 38[ 0.07973544, -1.32256315, -0.79129363, -1.02846333, 0.1743771 , 39-1.05056216, -0.43055898, -0.57776798, -0.01918079, -0.62175009, 40-1.17599947, 0.75143992, 0.1166349 , -0.7048248 ], 41[ 1.36999975, 0.24369967, 0.70495907, 0.55380103, 0.73857716, 420.42734423, -0.80219476, -1.10054911, 0.03465823, -0.72462869, 430.9146511 , -1.022045 , -1.19200841, -0.33212075], 44[ 0.7248219 , -0.27183095, 0.19125615, -0.29706511, 0.15125413, 45-1.03200929, -0.75118786, -0.94530905, 1.95357646, -0.27244743, 460.02880655, -0.71064065, -1.19950346, -0.52204495], 47[ 0.07973567, -0.28443601, 0.97842632, -1.40819844, -1.04578329, 48-1.3819206 , -1.06264527, -0.77999701, 0.54794105, -1.32895121, 49-0.7153178 , -1.12575341, -0.69229129, -1.19027159], 50[ 0.07973544, -0.28443601, 0.9784266 , -1.40819883, -1.04578372, 51-1.38192073, -1.06264538, -0.77999695, 0.54794055, -1.32895159, 52-0.71531807, -1.12575356, -0.69229111, -1.19027183], 53[ 1.36999976, 0.19354476, 1.14586033, 0.15145175, 0.56659032, 54-0.23033608, -1.10499162, -1.3278774 , 0.97522107, -0.83738492, 551.0693244 , -1.27875472, -1.34904943, -0.38092924], 56[ 1.36993791, -0.98611838, 0.62087573, -0.16956712, -0.14817347, 57-0.26204303, -1.66981469, -1.54097017, 0.30667062, -1.50400252, 580.19060869, -1.30128376, -1.10099101, -0.75223893], 59[ 0.08451633, -0.28667445, 0.97764232, -1.4042843 , -1.04319818, 60-1.37807184, -1.06498225, -0.78297929, 0.54667054, -1.33005572, 61-0.71186578, -1.12698887, -0.69403756, -1.18886308], 62[ 0.07973544, -0.28407297, 0.97896926, -1.4088766 , -1.04652705, 63-1.38222271, -1.06273268, -0.78016007, 0.54756319, -1.32940874, 64-0.71522236, -1.12634062, -0.69252397, -1.19048701]]) 65 66 67# 格子点の座標を生成 68x = np.arange(5) 69y = np.arange(4) 70z = np.arange(14) 71x, y, z = np.meshgrid(x,y,z) 72x = np.ravel(x) 73y = np.ravel(y) 74z = np.ravel(z) 75 76c = np.ravel(a) 77 78fig = plt.figure() 79ax = fig.add_subplot(111, projection='3d') 80p = ax.scatter3D(x, y, z, c=c) 81fig.colorbar(p) 82plt.show()

イメージ説明

投稿2020/07/26 02:31

can110

総合スコア38341

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

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

ttt_

2020/07/30 07:35

ありがとうございます。 参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問