簡體   English   中英

動態為多個數據集創建數組

[英]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中是否可行。

您可以選擇將數組存儲在dictlist

選項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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM