Numpy 的学习笔记
几点约定
全文采用1 ~ 3个井号,对应全书的一级、二级和三级标题。
采用四个井号来记录正式的笔记内容
文章目录
Quickstart Tutorial
基础
-
Numpy的主要目的,是处理相同类型数据构成的【表元素】Table Elements
-
Numpy 的维度,被称为【轴】axes
# 以下数据有两个轴,第一个轴长度为2, 第二个轴长度为3
# 与线性代数中的约定是相同的,以下为一个2 x 3的矩阵
[[ 1., 0., 0.],
[ 0., 1., 2.]]
ndarray的属性
这里讲述了ndarray的6个属性
ndim : 维度、shape : 形状、size : 大小
dtype : 元素类型、itemsize : 元素体积、data : 缓存空间
-
ndarray.ndim
轴(维度)的数量
-
ndarray.shape
数组的形状,每一个维度上的尺寸,构成一个tuple元组
-
ndarray.size
数组的总元素数,等于size各维度的乘积
-
ndarray.dtype
数组元素的数据类型。除了标准的Python类型之外,NumPy还给了自己的一些类型,包括numpy.int32, numpy.int16, numpy.float64
-
ndarray.itemsize
数组元素占用的位数。比如float64,占用itemsize 8。与ndarray.dtype.itemsize是等价的。
-
ndarray.data
包含数组实际元素的缓冲区。通常不需要使用,而使用检索访问数据。
>>> import numpy as np
>>> a = np.arange(15).reshape(3, 5)
>>> a
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
>>> a.shape # shape 形状
(3, 5)
>>> a.ndim # ndim 维度
2
>>> a.dtype.name # dtype 类型
'int32'
>>> a.itemsize # itemsize 元素体积
4
>>> a.size # size 大小
15
>>> a
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
>>> type(a) # a的类型
<class 'numpy.ndarray'>
>>> b = np.array([6, 7, 8])
>>> b
array([6, 7, 8])
>>> type(b)
<class 'numpy.ndarray'>
>>> b.size
3
>>> b.ndim
1
>>> b.dtype
dtype('int32')
>>> b.data # 缓存空间
<memory at 0x000001E33E78F588>
>>> b.itemsize
4
创建array(数组)的方法
- 使用常规的Python list 或者tuple,调用【数组方法】array method
注意,采用array方法的时候,一定是一个list或者tuple,而不能是仅仅是一组有序的数字
import numpy as np
a = np.array([2, 3, 4])
b = np.array((1.2, 3.5, 5.1))
- 采用array方法创建多维数组
>>> c = np.array([[1.5, 2.3], [4, 5, 6]])
>>> c # 注意因为上面的两个list尺寸不同,所以创建了两个list构成的数组
array([list([1.5, 2.3]), list([4, 5, 6])], dtype=object)
>>> c = np.array([[1.5, 2.3, 3.2], [4, 5, 6]])
>>> c # 采用相同维度的list,创建了多维array
array([[1.5