huanghong 2019-06-20
NumPy(Numerical Python) 是一个开源的Python 科学计算库,它是 Python科学计算库的基础,许多其他著名的科学计算库如Pandas、Scikit-learn等,都要用到NumPy 库的一些功能。
NumPy 允许在Python 中做向量和矩阵的运算,而且很多底层的函数都是用C 语言写的,将获得在普通 Python 中无法达到的运算速度。
import numpy as np
print(np.__version__)
输出结果:1.16.2
使用关键字 import 导入 numpy模块,为了使用方便,通过关键字 as 对其进行别名处理。
别名为 array,numpy.array 与 标准Python 库类 array.array 不一样,标准库中只能处理一位数组并且功能相对较少。
a = np.array([7,2,9,10])
shape - 显示数组的维度。为一个整数元祖,表示每个维度上的大学。对于一个 n 行 m列的矩阵来说,shape 就是 (n, m)。
a = np.array([[5.2,3.0,4.5],[9.1,0.1,0.3]])
a = np.array([[[1,11],[2,22],[12,21]],[[3,33],[4,44],[34,43]],[[5,55],[6,66],[56,65]],[[7,77],[8,88],[78,87]]])
当打印数组时,NumPy以与嵌套列表类似的方式显示它,具有以下布局:
一维数组被打印为行、二维为矩阵和三维为矩阵列表。
如下是ndarray的一维、二维、三维 数组的可视化表示。
ndarray 对象提供的关键属性:
通常,数组的元素最初是未知的,但它的大小是已知的。因此,NumPy提供了几个函数来创建具有初始占位符内容的数组。这就减少了数组增长的必要,因为数组增长的操作花费很大。
函数 zeros 创建一个由0组成的数组,函数 ones 创建一个由1数组的数组,函数 empty 内容是随机的并且取决于存储器的状态。默认情况下,创建的数组的dtype是 float64。
操作示例如下:
>>> np.zeros((3,4))
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
>>> np.ones((2,3,4), dtype=np.int16)
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]], dtype=int16)
>>> np.empty((2,3))
array([[5.2, 3. , 4.5],
[9.1, 0.1, 0.3]])
要创建数字序列,NumPy提供了一个类似于 range 的函数,该函数返回数组而不是列表。
arange函数为 arrange(start=None, stop=None, step=None, dtype=None),根据start 与 stop 指定的范围以及step 设定的步长,生成一个 ndarray。
>>> np.arange(12)
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
>>> np.arange(1,2,0.1)
array([1. , 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9])
a=np.arange(24).reshape(4,3,2)
T 转置操作
b=a.T