文字列の長さを事前に知らなくても、文字列を保持するnumpy再配列を初期化することはできますか?可変長のnumpy再配列文字列
(不自然)の例としては:
mydf = np.empty((numrows,), dtype=[ ('file_name','STRING'), ('file_size_MB',float) ])
問題は、私は情報とそれを埋めるの前に私のrecarrayを構築しています、と私は必ずしも事前にfile_name
の最大の長さを知らないということです。
すべての私の試みは、切り捨てられた文字列フィールドの結果:
>>> mydf = np.empty((2,), dtype=[('file_name',str),('file_size_mb',float)])
>>> mydf['file_name'][0]='foobarasdf.tif'
>>> mydf['file_name'][1]='arghtidlsarbda.jpg'
>>> mydf
array([('', 6.9164002347457e-310), ('', 9.9413127e-317)],
dtype=[('file_name', 'S'), ('file_size_mb', '<f8')])
>>> mydf['file_name']
array(['f', 'a'],
dtype='|S1')
(余談として、
mydf['file_name']
ショー「F」と「」ながら
mydf
ショー「」と「」を行い、なぜ?)
私は
file_name
ため
|S10
(例えば)タイプで初期化した場合、その後のものは長さ10
で切り捨て取得
は同様に、私は見つけることができる唯一の同様の質問がthis oneですが、このcalcu適切な文字列の長さがで先験的にであるため、私とまったく同じではありません。
を(例えば)|S9999999999999
(つまり、なんとなく上限)で始める以外の方法はありますか?
これは良い質問です。再配列の長さ0の文字列はちょうど私に30分髪を引き裂かせてくれました! – Christoph