1. ホーム
  2. python

[解決済み] numpy.ndarrayを文字列(またはバイト)に変換し、numpy.ndarrayに戻す。

2022-03-05 18:20:21

質問

ちょっと困っていることがあるんです。

私はnumpy.ndarrayを文字列に変換しようとしている、私はすでにこのようにそれを行っている。

randomArray.tostring()

うまくいくのですが、numpy.ndarrayに変換して戻せないかと考えています。

何かいい方法はないでしょうか?

numpy 1.8.1を使っています。

コンテキスト 目的は、numpy.ndarray を rabbitmq (pika library) のメッセージとして送信することです。

どのように解決するのですか?

を使用することができます。 fromstring() メソッドを使用します。

arr = np.array([1, 2, 3, 4, 5, 6])
ts = arr.tostring()
print(np.fromstring(ts, dtype=int))

>>> [1 2 3 4 5 6]

コメントするポイントが足りず、短い回答で申し訳ありません。データ型の記載を忘れないようにしないと、痛い目を見ることになりますよ。

の注意点 fromstring numpy 1.14 以降では :

sep : str, オプション

データ中の数字を区切る文字列。要素間の余分な空白も無視される。

バージョン 1.14 からは非推奨: デフォルトの sep='' を渡すと、この関数の非推奨のバイナリモードが起動するため、非推奨とします。このモードは,文字列を10進数のASCIIテキストではなく,バイナリバイトとして解釈するものであり,この操作は,frombuffer(string, dtype, count) と表記した方がよいでしょう。文字列が Unicode テキストを含んでいる場合、fromstring のバイナリモードは最初に utf-8 (python 3) かデフォルトエンコーディング (python 2) のどちらかを使ってバイトにエンコードしますが、どちらも正常な結果を生成しません。