1

これは私の最初の投稿であり、プログラミングは本当に初めてです-処理したいファイルを含むフォルダーがあり、必要な値でnumpy配列を作成します:

listing = os.listdir(datapath)
my_array=np.zeros(shape=(0,5))
for infile in listing:
    dataset = open(infile).readlines()[1:]
    data = np.genfromtxt(dataset, usecols=(1,6,7,8,9))
    new_array = np.vstack((my_array, data))

リスト(datapathフォルダー)に2つのファイルがありますが、new_array配列はデータを上書きし、2番目のファイルの値のみを与えてくれますか?ありがとう、

4

2 に答える 2

2

私があなたを正しく理解していれば、あなたの問題の解決策は、それを新しいものではなく「my_array」にvstackする必要があるということです。

最後の行を次の行に置き換えるだけで機能します。

my_array = np.vstack((my_array, data))

ただし、これが最も効率的な方法だとは思いません。そのフォルダーにあるファイルの数がわかっているので、配列のサイズを事前に定義して、その内容を入力するだけです。

于 2012-11-06T23:23:21.567 に答える
2

特定のフォルダーからnumpy配列内のすべてのファイルを読み取るために必要なことは次のとおりです。testファイルのみを含むフォルダーがあり.txtます。私のフォローfile.pyは、すべてのファイルと同じtestフォルダーにあり.txtます。各.txtファイルには、4x4 行列/配列が含まれています。スクリプトを実行するmatricesと、[Nx4x4] の numpy 配列が取得されます。

import numpy as np
from glob import glob

def read_all_files():
   file_names = glob('test/*')
   arrays = [np.loadtxt(f) for f in file_names]
   matrices = np.concatenate(arrays)
于 2019-02-27T10:23:43.247 に答える