[英]Dynamically creating arrays for multiple datasets
這是一種生活質量查詢,我覺得可以解決,但是找不到(也許我使用的是錯誤的字詞)
本質上,我要對多組大型數據文件進行分析。 這涉及讀取每個數據文件,並將它們存儲為數組(可變長度)。
到目前為止,我一直在做
import numpy as np
input1 = np.genfromtxt('data1.dat')
input2 = np.genfromtxt('data2.dat')
等等。我想知道是否有一種方法可以動態地將數組分配給每個數據集。 由於您可以使用for循環動態讀取這些內容,
for i in xrange(2):
input = np.genfromtxt('data%i.dat'%i)
我希望結合以上內容來創建一堆數組。 input1,input2等,而無需自己多次鍵入genfromtxt。 如果我要導入100個數據集(恰當地命名為data0,data1等),肯定有一種方法。
我能想到的解決方案可能是創建一個函數,
import numpy as np
def input(a):
return np.genfromtxt('data%i.dat'%a)
但是顯然,我寧願將其存儲在內存中,而不是不斷地重新生成列表,並且非常感謝您知道在Python中是否可行。
您可以選擇將數組存儲在dict
或list
:
選項1
使用dict
。
data = {}
for i in xrange(2):
data['input{}'.format(i)] = np.genfromtxt('data{}.dat'.format(i))
您可以通過鍵訪問每個陣列。
選項2
使用list
。
data = []
for i in xrange(2):
data.append(np.genfromtxt('data{}.dat'.format(i)))
或者,使用列表推導:
data = [np.genfromtxt('data{}.dat'.format(i)) for i in xrange(2)]
您還可以使用map
,它返回一個列表:
data = map(lambda x: np.genfromtxt('data{}.dat'.format(x)), xrange(2))
現在,您可以按索引訪問每個數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.