它会给我啥以及如何访问这些元素?
Posted
技术标签:
【中文标题】它会给我啥以及如何访问这些元素?【英文标题】:What will it give me and how to access the elements?它会给我什么以及如何访问这些元素? 【发布时间】:2019-01-16 21:34:31 【问题描述】:请看这段代码:
sig_array=[]
...
for i in range (0, 2):
....
temp=[]
for k in range (0, len (sig)):
#print (k)
temp.append(downsample(sig[k],sampl, new_freq))
sig_array.append(temp)
换句话说,temp
是一个数组列表(我的downsample
函数,顾名思义,返回一个数组),然后temp
将被聚合,因此它将是一个列表列表数组!
我的问题是:如何处理(索引,...),是否有最简单的方法来进行,通过在循环中生成数组列表,但如何将其保存在数据结构中?
谢谢
【问题讨论】:
这里i
有什么用?
你需要用它来做什么?轻松访问数据?矩阵处理?也许看看 numpy ndarrays 等
@Bazingaa。实际上,我并没有将所有代码都集中在我的问题上,但大致上,请记住 i
的不同值会给出不同的 sig
(从一个i
到另一个的长度不必相同。希望很清楚
您是否尝试过考虑列表理解?它会让你的代码不那么冗长
使用extend
而不是append
来删除列表问题呢?类似temp.extend(....)
【参考方案1】:
关于索引,您只需引用 sig_array[0]
、sig_array[1][2]
或 sig_array[3][0][2]
等元素。
关于任何更好的数据结构,它实际上只取决于您的用例。正如@smagnan 在 cmets 中所说,您是否使用它来轻松访问数据?矩阵处理?如果是这样,请查看numpy ndarrays
。 您说您需要它来进行时间序列分析的大数据。在这种情况下,使用pandas
模块会很有帮助(more info)。
另外,正如@Bazingaa 所说,您可以使用list
理解(more info) 来减少代码的冗长:
sig_array = [ [downsample(sig[i],sampl, new_freq) for i in range (len(sig))] for _ in range(2)]
使用list
理解,最好从外部开始,从结尾开始。 for _ in range(2)
将运行两次(我已将您的 i
替换为 _
,因为我无法看到您在任何地方使用它。如果您需要它,请将 _
替换为相关的变量名)。在每次迭代中,它会将append
内部列表推导到sig_array
。在内部 listcomp 中,downsample()
函数的结果将附加到 list
的每个迭代的临时 for
循环中,
这将具有与您的代码完全相同的输出,但显然 方式 更短:)
【讨论】:
我在上面的cmets中已经解释了我的“原因”,你能看看吗? @Adi219:如果你也向他简要解释一下列表中发生的事情,特别是替换i
的_
,这将对OP有所帮助。我问他i
。可能他需要一些取决于i
的操作。所以最好解释一下。也只需将range (0, len (sig))
替换为range(len (sig))
@Bazingaa 感谢您的关心。另外,考虑到我下面提到的“需求”,你有一个数据结构可以告诉我吗?
@MysteryGuy 我已经对其进行了编辑以满足您的“需求”。
@Adi219 看到你对pandas
的编辑,但在tuto 中,他们只是读了一篇写得很好的csv
,没关系。就我而言,我正在阅读 EEG 文件,需要自己构建数据以上是关于它会给我啥以及如何访问这些元素?的主要内容,如果未能解决你的问题,请参考以下文章
Eclipse 新建包的时候它会给我自动生成一个package-Info.java文件
WEBGIS的毕业设计!我啥都不会啊,完全不知道如何下手,希望有人来给我说说!题目如下。
在Swift中使用Realm进行过滤,给我一个对象数组,但是当打印一个属性时,它会给我一个空字符串
当我在 ngOnInit() 中使用 router.getCurrentNavigation() 时,它会给我类型错误,但是当我在构造函数中使用它时,它工作正常,为啥?