NumPy的一种主要数据类型是N维数组(ndarray,简称数组)。N维数组是 SciPy 中很多高级数据处理技术的基础。
为什么要使用NumPy数组
在 Python 中表格数据的一种表示方法是使用列表的列表。
gene0 = [100, 200] gene1 = [50, 0] gene2 = [350, 100] expression_data = [gene0, gene1, gene2]
在以上代码中,每种基因在不同细胞类型上的表达被保存在一个 Python 整型列表中。然后将这些列表保存在一个列表(可以称其为元列表,meta-list)中。可以用两级列表索引提取出单个数据点。
expression_data[2][0]
350
这样保存多维数组是效率非常低的一种方法:
1.上面的 gene2 列表不是整数列表,而是一个指向整数的指针列表,会占用更多的内存。
2.列表和整数被随机地保存在计算机 RAM 中完全不同的区域。但是现代处理器更喜欢按块读取内存中的内容,因此,将数据分散保存在 RAM 中是非常低效的。
这些正是 NumPy 数组要解决的问题。
NumPy数组的属性和方法
import numpy as np
array1 = np.array([1, 2, 3, 4])
print(array1)
print(type(array1))
[1 2 3 4]
<class 'numpy.ndarray'>
以上代码说明一维数组与Python列表极为相似,而NumPy数组的类型是 “numpy.ndarray”。
我们可以使用print(array1.shape)来得到N维数组的形状,即“(4,)”。