文章目录
前言
-
本文介绍NumPy的基本操作和通用函数。NumPy作为数据科学领域常用的Python数学处理工具,掌握NumPy十分重要
-
将在《NumPy入门2》中介绍广播、索引、结构化数组等后续内容
-
本文面向新手
-
NumPy提供一种固定类型数组和相应的操作及方法,单个数组存储数据的多样性较Python原始列表而言较弱,但NumPy内部大量的数学处理工具为我们提供了极大的便利
-
NumPy的array类型是ndarray,是固定类型数组,即内部所有元素都是相同类型的。
-
Python自带的list,同一个list内的不同元素类型可以不同,则list就需要为每个元素存储各自一个和元素相关的信息块。若list中所有元素都是相同类型,则就会存储大量多余重复的信息块
-
Python自带array要求内部元素类型相同,但其提供的操作和方法相比于NumPy就逊色许多。
-
注意,ndarray本身是数组类型,不是向量类型
-
总而言之,在对大量数据集的数据处理及数学运算上,NumPy的效率要远远高于原生Python
-
一般而言,才处理小数据集时,NumPy的效率和Python原生的效率相差无几。下文主要都是用小数据集来介绍NumPy仅仅是为了方便记录,实际工作中在处理小数据集上没必要用NumPy代替Python原生
-
个人推荐直接安装Anaconda。Anaconda包括Python、R、包管理工具conda、数据处理工具NumPy、pandas等、IDE如Spyder等、增强版Python——交互式console IPython、Jupyter notebook and Jupyter lab等,具备了各种强大的数据处理工具。也可以安装纯Python或miniconda再自行手动安装NumPy。
-
本文只给出各种操作、方法的案例和使用方法,不对任何方法以及其参数等进行深入、详细的介绍,文档里都有,请自行查阅文档
-
本文原为Jupyter lab编辑完成,请自行区分输入和输出
NumPy pandas的本质是Module,即一个.py文件
- 首先
import numpy as np
创建NumPy的ndarray
注意前闭后开区间
print(np.array([1, 2, 3]), end = '\n\n')
print(np.array(range(10)), end = '\n\n')
print(np.array([range(i, i+3) for i in [1, 4, 7]]), end = '\n\n')
[1 2 3]
[0 1 2 3 4 5 6 7 8 9]
[[1 2 3]
[4 5 6]
[7 8 9]]
print(
np.empty(10),# 空数组的内部值理论上是随机的,也有的全是0
np.zeros(10, dtype = int),
np.eye(3),
np.ones((3, 3), dtype = float),
np.full((2,2,3), 2.17),
np.arange(0, 20, 4),#与range()类似
np.linspace(0, 20, 4),
sep = '\n\n'
)
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0 0 0 0 0 0 0 0 0 0]
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
[[[2.17 2.17 2.17]
[2.17 2.17 2.17]]
[[2.17 2.17 2.17]
[2.17 2.17 2.17]]]
[ 0 4 8 12 16]
[ 0. 6.66666667 13.33333333 20. ]
print(
np.random.random((4, 4)),#在0~1均匀分布的随机数组成的数组
np.random.normal(0, 1, (