提示:以下是本篇文章正文内容,下面案例可供参考
1.一个开源的Python科学计算库
2.使用Numpy可以方便的使用数组,矩阵进行计算
3.包含线性代数,傅里叶变换,随机数生成等大量函数
代码更简洁:Numpy直接以数组,矩阵为粒度(一个单元)计算并且支持大量的数学函数,而python需要用for循环从底层实现
性能更高效:Numpy的数组存储效率和输入输出计算性能,比python使用list或者嵌套list好很多
注:(Numpy的数据存储和python原生的list是不一样的)
注:Numpy的大部分代码都是c语言实现的,这是Numpy比纯python代码高效的原因
Numpy是Python各种数据科学类库的基础库
比如SciPy,SCikit-Learn,Tensorflow,PaddlePaddle
如果不会Numpy,那么这些库的深入理解都会遇到障碍
shape:返回一个元组,表示array的维度
ndim:一个数字,表示array的维度的数目
size:一个数字,表示array元素的个数
dtpye:array中元素的数据类型
1.从python的列表list和嵌套列表创建array
2.使用预定函数arrange,ones/ones_like,zeros/zeros_like,full/full_like,eye等函数创建
3.生成随机数的np.random模块构建
1.直接逐元素的加减乘除等算术操作
2.更好用的面向多维的数组索引
3.求sum/mean的等聚合函数
4.线性代数函数,比如求解逆矩阵,求解方程组
导入模块:
import numpy as np
# 创建一个一维的数组,也就是python的单元素list
x=np.array([1,2,3,4,5,6,7,8])
# 创建一个二维的数组,也就是python的嵌套list
X=np.array([[1,2,3,4],[5,6,7,8]])
print("x=",x)
print("X=",X)
print(x.shape)#返回一个元组,表示维度和元素个数
print(X.shape)
print(x.ndim)#返回一个值,表示维度
print(X.ndim)
print(x.size)#返回一个值,表示数组中所有元素的个数
print(X.size)
print(x.dtype)#返回一个值,表示数组内元素的数据类型
print(X.dtype)
arange([起始值(取得到)],[终止值(取不到)],[步长],dtype=None)
print(np.arange(10))#创建一个0-10的一维数组(取不到10)
print(np.arange(2,10,2))#创建一个2-10,步长为2的一维数组(取不到10)
np.ones(shape,dtype=None,order=‘C’)
shape:int or tuple of ints Shape of the new array . eg:(2,3) or 2
dtype:数据类型,默认的是自己从输入的数据自动获得
order:有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序
print(np.ones(10))#创建一个一行十列的单位数组
print(np.ones((2,3)))#创建一个二行三列的单位数组
ones_like(a(数组),dtype=float,order=‘C’)
print(np.ones_like(x))#创建一个和x相同形状的单位数组
print(np.ones_like(X))#创建一个和X相同形状的单位数组
print(np.ones_like([2,3]))#创建一个和[2,3]数组形状相同的单位数组
print(np.ones_like([[1,2,3],[4,5,6]]))#创建一个和[[1,2,3],[4,5,6]]数组形状相同的单位数组
np.zeros(shape,dtype=None,order=‘C’)
print(np.zeros(3))#创建一个一行三列的零数组
print(np.zeros((2,4)))#创建一个二行四列的零数组
np.zeros_like(a(数组),dtype=None,order=‘C’)
print(np.zeros_like(x))#创建一个和x数组形状相同的零数组
print(np.zeros_like(X))#创建一个和X数组形状相同的零数组
print(np.zeros_like([2,3]))#创建一个和[2,3]数组形状相同的零数组
print(np.zeros_like([[1,2,3],[4,5,6]]))#创建一个和[[1,2,3],[4,5,6]]数组形状相同的零数组
np.empty(shape,dtype=Nome,order=‘C’)
注意:数据是未初始化的,里面的值可能是随机值,不要用
print(np.empty(5))
print(np.empty((2,3)))
np.empty_like(prototype,dtype=None)(也有可能是未初始化数据,为随机值)
print(np.empty_like(x))
print(np.empty_like(X))
print(np.empty_like([2,3]))
print(np.empty_like([[1,2,3],[4,5,6]]))
np.full(shape,fill_value,dtype=None,order=‘C’)
print(np.full(4,9))#创建一个一行四列,元素为9的数组
print(np.full((2,3),9))#创建一个二行三列,元素为9的数组
np.full_like(a(数组),fill_value,dtype=None)
print(np.full_like(x,9))#创建一个与x形状相同,元素为9的数组
print(np.full_like(X,9))#创建一个与X形状相同,元素为9的元素
print(np.full_like([2,3,4],9))#创建一个与[2,3,4]形状相同,元素为9的数组
print(np.full_like([[1,2,3],[4,5,6]],9))#创建一个与[[1,2,3],[4,5,6]]形状相同,元素为9的数组
np.random.randn(d0,d1,…,dn)
print(np.random.randn())#生成一个随机数
print(np.random.randn(3))#随机生成一个一行三列的数组
print(np.random.randn(2,3))#随机生成一个二行三列的数组
print(np.random.randn(2,3,4))#随机生成一个三维的数组,有两块三行四列的数组组成
A=np.arange(10).reshape(2,5)#创建一个0-10的二行五列的数组
print(A)
print(A.shape)#数组的形状
print(A+1)#对A数组每个元素加一
print(A*2)#对A数组每个元素都乘2
print(np.sin(A))#对A数组每个元素求sin值,还可求其他三角函数值
print(np.exp(A))#对A数组每个元素求ln值
print(np.exp2(A))#对A数组每个元素求log2值
B=np.random.randn(2,5)#随机生成一个二行五列的数组
print(A+B)#将数组A和数组B对应元素相加
print(A-B)#将数组A和数组B对应元素相减