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

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

ただいまの
回答率

87.78%

strの行列をnumpyのarrayに変換したいです。

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 122

score 0

前提・実現したいこと

Pandasデータフレームににstrで入っていた画像のピクセル行列をndarrayにして解析できるようにしたいのですがその方法がわからず難渋しております。是非ご教示いただければ幸いです。

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

このように、一つ一つの画像データがstrで格納されています。dataにはPandasから抜き出した20000個ほどの画像データが入っており、297×297のピクセルデータが下記のように収納されています。

data=xray["image_data_grayscale"]
data=data.values 
data
#以下出力
array(['[[185  40   0 ...   0  24 131]\n [ 75  14   0 ...   0   8  42]\n [ 11   2   0 ...   1   3  12]\n ...\n [ 78  62  68 ...   3  13  27]\n [104  74  75 ...   1  23  83]\n [156  90  78 ...   1  45 167]]',
       '[[135 133 131 ...  24  21  19]\n [132 130 129 ...  32  28  24]\n [134 128 125 ...  43  37  32]\n ...\n [  2   2   3 ... 161 161 157]\n [  1   2   3 ... 162 164 159]\n [  3   2   3 ... 164 166 161]]',
       '[[ 62  10   0 ... 197 200 209]\n [ 35   6   0 ... 196 200 207]\n [ 31   5   0 ... 196 200 208]\n ...\n [255 163 116 ...   0   5  33]\n [255 169 123 ...   0   5  33]\n [255 179 133 ...   0   5  33]]',
       ...,
       '[[17 15  9 ... 93 96 98]\n [23 19 13 ... 91 92 94]\n [32 27 20 ... 92 91 92]\n ...\n [ 0  0  0 ...  0  0  0]\n [ 0  0  0 ...  0  0  0]\n [ 0  0  0 ...  0  0  0]]',
       '[[0.37254902 0.37647059 0.38431373 ... 0.47058824 0.58039216 0.60784314]\n [0.38039216 0.38039216 0.38823529 ... 0.43529412 0.54117647 0.60392157]\n [0.38039216 0.38431373 0.38823529 ... 0.41960784 0.50980392 0.60392157]\n ...\n [0.00392157 0.05490196 0.17254902 ... 0.23921569 0.23137255 0.21568627]\n [0.01176471 0.04705882 0.16862745 ... 0.23921569 0.23137255 0.21176471]\n [0.01568627 0.04313725 0.16862745 ... 0.23529412 0.23137255 0.21176471]]',
       '[[52 47 40 ... 16 16 18]\n [51 45 40 ... 16 16 18]\n [51 45 40 ... 16 16 18]\n ...\n [45 58 70 ... 46 58 76]\n [46 59 70 ... 46 59 77]\n [49 58 69 ... 47 60 78]]'],
      dtype=object)

試したこと

numpy.fromstring(data, dtype=float,sep='\n',)


ネットを探しては見たのですが、この程度しか思いついておりません。大変恐縮ではございますがどうぞよろしくお願いいたします。

補足情報(FW/ツールのバージョンなど)

環境はKaggleのノート(Python3)です。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • ppaul

    2021/07/22 18:17

    [185 40 0 ... 0 24 131]には、本当に「...」が入っているのでしょうか。
    その場合、復元は不可能です。

    キャンセル

  • zuminz

    2021/07/22 18:27

    コメントありがとうございます、...の部分はシステム上省略されているだけで、各[]には297個の数字が入っております。

    キャンセル

  • ppaul

    2021/07/22 18:35 編集

    了解です。
    結果はどういう形を想定していますか?
    (297, 297)のshapeを持つndarryの20000個のリストですか、
    (297, 297)のshapeを持つndarryの20000個の一次元ndarrayですか、
    それともそれ以外ですか?

    キャンセル

まだ回答がついていません

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

  • ただいまの回答率 87.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る