Arrays Python“;数组类型";初学者数据

Arrays Python“;数组类型";初学者数据,arrays,python-2.7,numpy,Arrays,Python 2.7,Numpy,我刚刚开始编写Python代码,之前我对脚本语言(BASH+2基于代码的程序,SAC和FLAC)有一些经验。因此,我对基本代码结构、循环等有了合理的理解。到目前为止,我的工作主要包括在不同的表之间重新组织和处理数据,根据另一个表的值从一个表中查找数据,等等 然而,我对数据和2D数据的所有可能处理方式感到有点不知所措,尤其是列表列表、numpy数组、numpy记录数组等等,它们中的每一个都以不同的方式从文件中加载、访问和修改它们 您知道关于可能的数据类型以及如何处理它们、访问它们和在它们之间切换的

我刚刚开始编写Python代码,之前我对脚本语言(BASH+2基于代码的程序,SAC和FLAC)有一些经验。因此,我对基本代码结构、循环等有了合理的理解。到目前为止,我的工作主要包括在不同的表之间重新组织和处理数据,根据另一个表的值从一个表中查找数据,等等

然而,我对数据和2D数据的所有可能处理方式感到有点不知所措,尤其是列表列表、numpy数组、numpy记录数组等等,它们中的每一个都以不同的方式从文件中加载、访问和修改它们

您知道关于可能的数据类型以及如何处理它们、访问它们和在它们之间切换的摘要吗(最好是针对傻瓜)

如果谷歌能做到这一点,那么我还没有充分做到这一点,我对此表示道歉

干杯


Vhailor有三种常见的数组类型,我将在这里提到:和,它们是内置的,并有文档记录(以及其他一些),和

列表 列表是内置的可变对象,可以存储列表、元组和numpy数组。列表文字用方括号(
[1,2,3,4]
)书写,并且可以用方括号对它们进行索引(从零开始):

a = [1,2,3,4]
print a[1] # 2
元组 元组类似于列表,但它们是用括号(
(1,2,3,4)
)编写的,并且是不可变的(它们不能修改),但在某些操作中比列表更快

a = (1,2,3,4)
a[1] += 1 # raises a TypeError
通过将元组作为参数传递给内置的
list()
函数,可以将元组转换为列表,也可以使用
tuple()
将元组转换为列表

NumPy数组对象 NumPy数组对象不是内置的;他们是我们的一部分。它们是用
numpy.array()
创建的,它接受任何iterable对象(列表和元组都是iterable)并返回具有相同数据的numpy数组对象:

import numpy as np
a = np.array([1,2,3,4])
NumPy数组是用C实现的,可能更快,并且NumPy实现了一系列有用的函数来操作它们(在我上面链接的文档中有记录)


关于保存和加载它们,我最近讨论了一个关于保存NumPy数组的问题,我在这里提到的所有方法都适用于这三种数组类型。

您想了解所有783000种类型,还是只了解最常见的类型?看起来我错过了最后三种类型。。。但是,好的,有一些关于如何处理二维数据的基本方法的总结吗?最好是那些包含在基本Python和Numpy中的?也许我应该指定我尝试使用if进行数据分析-处理时间序列(X-Y)数据的负载。。。如果这一点很重要的话,那就是NumPy数组的核心几乎就是C数组。因此,对于C数组来说困难/缓慢的事情对于NumPy数组来说也很缓慢,比如追加行(列表通常有O(1)追加)。另一方面,NumPy阵列的内存开销相对较小,而且通常可以在不复制的情况下进行操作和查看。谢谢您的帮助!我知道这里的人群对这些方法的速度很感兴趣。老实说,我正试图找到一些可能需要更长时间,但很容易处理的东西。我经常需要在表中进行复杂的搜索,从多个表中生成数据的组合,然后将数据添加到其他一些表中。。。就在最近,当我发现np.genfromtxt生成的记录数组数据类型对于列搜索非常方便时,我感到非常惊讶,但在添加列或从标题中提取信息时,我感到非常痛苦。@Vhailor我不知道它们的速度有多快,但在不同的情况下,每一个都可能更快,正如专家咨询小组提到的那样。