【问题标题】:Create a new array of data in each loop step in Python 3.4在 Python 3.4 的每个循环步骤中创建一个新的数据数组
【发布时间】:2015-09-23 10:12:05
【问题描述】:

我正在用 Python 3.4 编写脚本,我想更优雅地执行以下操作。 我在一个文件中有测量数据(2 列,N 行,N ~ 1000)。为了计算平均值、方差等数量。我在数据中读到:

data_1 = numpy.genfromtxt('measurement_1.out',delimiter='\t')
data_2 = numpy.genfromtxt('measurement_2.out',delimiter='\t')
...
data_20 = numpy.genfromtxt('measurement_20.out',delimiter='\t')

但是,我想在循环中执行此操作,可以在其中输入要考虑的测量次数(在示例中:number=20)。到目前为止,我的想法是这样的:

for i in range(1,number+1):
 data_'{}'.format(i) = np.genfromtxt('measurement_{}.out'.format(i), delimiter='\t')

这显然行不通。

换句话说,我的问题是:如何在每个步骤中使用循环创建一个新数组 data_i?

【问题讨论】:

  • 将它们收集到一个列表中,并使用data[3] 表达式访问它们。

标签: arrays numpy python-3.4


【解决方案1】:

您可以将它们存储在dict 中。如果您也想保留订单,可以使用collections.OrderedDict

from collections import OrderedDict
import numpy as np

def get_data(number):
   my_data = OrderedDict()
   for i in range(1, number+1):
       my_data['data_{}'.format(i)] = np.genfromtxt('measurement_{}.out'.format(i), delimiter='\t')
   return my_data

【讨论】:

    猜你喜欢
    • 2020-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    相关资源
    最近更新 更多