タプルのタイプリストであるバッファ文字列をnumpy配列にロードしたいと思います。
例えば
numpy.fromstring('(1,2),(3,4),', dtype=numpy.int64)
ValueError:文字列サイズは要素サイズの倍数である必要があります
しかし、どのdtype引数を使用するかを決定できませんか?
numpy.array(eval('(1,2),(3,4),'))
タプルの長さが少し長くなる場合があるので、行きたくありません...
おそらくあなたはre.finditer
一緒に使うことができますnp.fromiter
:
import re
import numpy as np
text = '(1,2),(3,4),'
arr = np.fromiter((item.group()
for item in
re.finditer(r'\d+', text)),
dtype=np.int64).reshape((-1, 2))
print(arr)
収量
array([[1, 2],
[3, 4]], dtype=int64)
テキストを次のように調整できる場合は、次の点に注意してください。
'1 2\n3 4'
次に、NumPy配列にはるかに簡単に(そしてより速く)ロードできます。
import io
text = '1 2\n3 4'
np.genfromtxt(io.BytesIO(text), dtype=np.int64)
収量
array([[1, 2],
[3, 4]], dtype=int64)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加