我已经知道自己想做什么,但我不确定这是否是最佳方式。要点是我拥有大量数据。这些数据作为具有我可以轻松提取的属性的对象存储在集群中。我正在根据对象的一个参数筛选这些数据,并随之拉出一些其他属性。然后该脚本应该进一步分析数据,但这方面不是问题。
我对如何存储我想要的数据的想法是创建一个类,我们称之为'cutData'。并遍历原始数据集中的所有对象,创建一个新的,更简单的对象进行分析。
这是一些伪代码来说明我的意思:
class cutData(object):
def _init_(self, a, b, c, d):
self.a = a
self.b = b
self.c = c
self.d = d
#For loop
#Call parameter for a (requires some shenanigans)
#Call parameter for b-d (trivial)
#Assign to object cutData
以下是我的问题:
对象类中的'a'是从原始数据的一个参数计算的时间尺度差异。使用其他脚本调用时,此参数以下列形式给出:
Vector([[39552, 39553], [123166, 12476], [203800, 203900]], dtype = int32)
因此,对于数据中的每个对象,此参数采用多个值。其他3个参数很容易分离。但是我不知道python的语法,它允许我为这个时间刻度参数的每个indice创建单独的对象,每个参数应该带有b,c和d,它们在集群数据中的每个对象都是相同的。值得注意的是,虽然我有三个索引,但是没有设定值的设定值。
这样做的最终意义是,如果a有9个时间刻度索引,则需要创建9个对象,每个对象具有相同的b,c和d,然后再转移到群集上的下一个对象。
感谢您提供任何帮助。
答案 0 :(得分:0)
我会在前面说我不太明白你在这里使用什么数据,或者在存储它之前你可能需要或不需要做任何计算/处理;如果这个答案没有真正帮助让我知道,并试图更具体一点:)。话虽如此,我会尽力帮助。
我的一些一般性观察:
如果要导出较大数据集的子集,并且只需要移动数据,而不需要任何单独的方法来操作或转换数据(想想使用类中的数据执行操作的类方法)例如,您可能希望将此数据存储为字典。然后,您可以将该字典序列化为json,然后您可以轻松地将其作为字典重新加载到另一个脚本中。 这很简单:
导入json export_data = {}
export_data ['data_identifier_here'] = {'key':'value','other_key':'other_value'} 使用open(“exported_data.json”,“w”)作为f: json.dump(export_data,f)
open(“exported_data.json”,“r”)为f: exported_data = json.load(f)
如果你这样做,你需要在添加数据时对数据进行任何必要的计算/处理,或者只是将你想要的所有内容转储到该特定事物的密钥下,然后让另一个脚本执行任何所需的处理。
这可能类似于:
# an example class; you can do the same with your cutData
class fruit(object):
def __init__(self, name, color):
self.name = name
self.color = color
# you can define any methods you need to manipulate the data in this class, and then run them
a = fruit("apple", "red")
o = fruit("grape", "purple")
fruits = [a, o] # a list of class instances
data = [] # a list that just holds class data as a dict for each, and not instances
for i in fruits:
data.append(i.__dict__)
# you can now serialize the data list however you like, keeping the data but not the methods
让我知道这是否有帮助,或者它是否有用。