Python 数据分析基础:NumPy 数组创建与操作详解
前言
大名鼎鼎的 NumPy 库,其实是一个能够实现科学计算的 Python 模块。与其他不同的是,如果要存储数据,其储存在连续的内存块中,与其他的 Python 内置对象相独立。
同时,它使用 C 语言的算法库可以很轻松地对内存进行相应操作,没有其他的前期工作。NumPy 数组所使用的内存与其他的内置序列相比更少。
而且,其它 Python 重量级的相关套件(如 Pandas、SciPy、Scikit-learn 等等)都几乎是奠基在 NumPy 的基础上。
所以,学会 NumPy 才能为往后学习其他数据科学相关套件来分析影像组学打下坚实的基础。
那下面我们就一起来初窥一下这个 NumPy 到底是何方神圣吧!小编觉得,可以用一句话来总结 NumPy 的特点:要想 Python,先 NumPy;要想 NumPy,先阵列!所以从这句话中我们可以看到,NumPy 中最经典的就是数组操作。
这就是 NumPy 数组长的模样!
实际上,NumPy 的所有功能都是建立在同质且多维度的 ndarray(N-dimensional array)上。
ndarray 有几个关键属性,分别为维度(ndim)、形状(shape)和数值类型(dtype)。一般我们称一维数组为 vector,而二维数组为 matrix。
1. 导入与创建数组
作为最开始的步骤,我们需要引入 numpy 模块,透过传入 list 到 numpy.array() 创建数组。
import numpy as np
np1 = np.array([1, 2, 3])
np2 = np.array([4, 5, 6])
那如果要加起来,怎么加呢?
# 数组相加
print(np1 + np2)
# [5 7 8]
所以,我们可以通过以下操作来明确一个数组的相关信息:
# 显示相关信息
print(np1.ndim, np1.shape, np1.dtype)
# 1 (3,) int64 => 一维数组,三个元素,数据型别
相信聪明的大家到这里都没有任何问题。那么我们接下来再继续生成第三个数组:
np3 = np.array([1, 2, 3, 4, 5, 6])
接下来,如果我们想要改变数组的维度,比如从前面的一维变成二维可以这么做:
np3 = np3.reshape([2, 3])
print(np3.ndim, np3.shape, np3.dtype)
# 2 (2, 3) int64
大家一定注意到了吧,上面都会显示一个 int64。那 int64 又是什么东西呢?


