目录
numpy是科学计算库
numpy的核心数据结构为n位数组,具有向量和矩阵的功能,并提供了大量的数学函数库
numpy的底层是C语言,执行速度比一般的python求解过程更快
详细使用方法可以通过www.numpy.org 去阅读官方文档了解
一、导入numpy
import numpy as np
二、常用函数
2.1 创建数组
np.array()
1)创建一维数组
arr = np.array([1,2,3,4,5])
#数组创建的时候可以指定数据类型
arr4 = np.array([1,2,3,4,5],dtype='int64')
#数组之间是通过空格隔开的
print(arr)
>>>
[1 2 3 4 5]
2)创建二维数组
arr2 = np.array([[1,2,3,4],[5,6,7,8]])
3) 基于当前数组创建一个指定数据类型、其他都相同的新数
np.astype()
若要改变原数组则需要赋值语句
arr2 = arr2.astype(np.int64)
4)生成值全为1的数组
np.ones(shape=(,))
np.ones(shape=(3,5))
np.zeros(shape=()) |
生成一个值全为0的数组 |
np.ones_like(arr) |
按照数组arr的形状生成一个全为1的数组 |
np.zeros_like(arr) |
按照数组arr的形状生成一个全为0的数组 |
np.diag(arr) |
基于矩阵arr,只提取主对角线元素得到的新矩阵 |
np.eye(n) |
创建一个n×n的单位矩阵 |
np.hstack() |
按列顺序堆叠两个数组,构成一个新的数组 |
np.vstack() |
按行顺序堆叠两个数组,构成一个新的数组 |
2.2 查看数组的维度
np.ndim()
np.ndim(arr2) #等价于arr2.nidm
>>> 2
2.3 查看数组数据类型
np.dtype()
arr4.dtype
>>> int64
arr2 = arr2.astype(np.int64)
2.4 查看数组的形状
np.shape()
arr = np.array([1,2,3,4,5])
arr.shape
>>> (5,)
2.5 查看数组的元素个数
np.size()
arr = np.array([1,2,3,4,5])
arr.size
>>> 5
2.6 数组元素统计计算
求和:np.sum(),通过axis参数可以实现对行/列求和
arr = np.array([1,2,3,4,5])
arr.sum()
>>> 15
arr2.sum(axis = 0) #对列求和
arr2.sum(axis = 1) #对行求和
数组元素求平均 |
np.mean() |
数组元素求方差 |
np.var() |
数组元素求标准差 |
np.std() |
数组元素最大值 | np.max |
数组元素最小值 | np.min |
2.7 求当前矩阵的转置矩阵
np.T()
arr2.T
2.8 生成等差数列
1)np.linspace(start= ,stop= ,num=)
定义起始数据和数据总数生成等差数列,
s1 = np.linspace(start = 1,stop = 100,num = 100)
#从1到100生成含100个元素的等差数列
2)np.arange(start= ,stop= ,step= )
定义起始数据和数据间隔长度生成等差数列
s1 = np.arrange(start = 1,stop = 100,step=2)
#从1到100,按间距为2生成等差数列
三、 数组切片及四则远算
3.1 数组索引
#数组的索引
arry[1,1] #取第1行第1列
arry[:,1] #取第一列
3.2 数组数学运算
1) 数组与数的运算
对数组中的每一个元素都运算一次
arr + 1 #表示对数组中的每一个元素都加1,减乘除幂同理
2)数组与数组的运算
两个数组间做加减乘除幂取余,数组的结构必须一致,计算时相同位置的数据进行加减乘除后形成新数组
arr1 = np.array([[1,2],[3,4]])
arr2 = np.array([[1,1],[2,3]])
#加法
print(arr1 + arr2)
>>>
[[2 3]
[5 7]]
#乘法
print(arr1*arr2)
>>>
[[ 1 2]
[ 6 12]]
#除法
print(arr1/arr2)
>>>
[[1. 2. ]
[1.5 1.33333333]]
#幂运算
print(arr1**arr2)
>>>
[[ 1 2]
[ 9 64]]
3)数组内积(即数学上的矩阵乘法)
arr1@arr2 要求arr1的列数要等于arr2的行数
arr1 = np.array([[1,2],[3,4]])
arr2 = np.array([[1,1],[2,3]])
print(arr1@arr2)
>>>
[[ 5 7]
[11 15]]
np.max(arr1) |
arr1所有值的最大值 |
np.max(arr1,axis=0) |
arr1所有列的最大值 |
np.min(arr1) |
arr1所有的最小值 |
np.min(arr1,axis=0) |
arr1所有列的最小值 |