python的三大库之numpy

1.导入默认为 import numpy as np

创建矩阵

使用np.array()括号内是矩阵的相关信息

最简单的例子:

ay=np.array([[1,2,3],
            [4,5,6]])

这是一个二维的矩阵,相当于c语言里的二维数组,一般来说,要从外往里数一下方括号的数量,比如从左数的话数的就是左方括号的数量,从第一个开始,到第一个挨着数字的左方括号结束,有几个就是几维,在numpy的文档里,你数了几个左方括号就代表几个轴,比如数了俩,就是x和y轴,再多一个 就是xyz三个轴,再多的话我也不知道是啥轴,只需要知道维度上升了即可。

与array配套的几个查看array的属性的函数

array.ndim// n代表一个数字,dim是dimension(维度)的缩写,返回int 代表维度
array.shape//返回一对数,代表几*几的矩阵
array.size//计算矩阵一共有几个元素,返回int

进阶操作:

1.设置内容类型,在【】之后加'.dtype',d是data的缩写,dtype=数据类型

主要有 int32,int64,float32,float64

array=np.array([1,2,3],dtpe=np.int32)
array=np.array([1,2,3],dtpe=np.int64)
array=np.array([1,2,3],dtpe=np.float32)
array=np.array([1,2,3],dtpe=np.float64)

2.创建特色矩阵

np.zeros((行数,列数))//告诉电脑,你要几行几列的矩阵
np.ones((行数,列数))//告诉电脑,你要几行几列的矩阵
np.empty((行数,列数))//告诉电脑,你要几行几列的矩阵 这个矩阵生成的应该是无穷小

3创建有序矩阵

np.arange(起点,终点,步长)
np.arange(起点,终点,步长).reshape((行数,列数))//代表创建完矩阵之后我要重新规划一下他的形状


4.生成线段

 

np.linspace(起点,终点,段数)//从起点到终点,要生成几个线段。
np.linspace(起点,终点,段数)。reshape((行数,列数))

矩阵的基础运算

1.四则运算

//加法
a=np.array([1,2,3,4])
b=np.range(4)//内容为从0-3的一维矩阵

c=a+b
print(c)//依然是得到矩阵,只不过是a的每一个数加去b中的每一个数


//减法
a=np.array([1,2,3,4])
b=np.range(4)//内容为从0-3的一维矩阵

c=a-b
print(c)//依然是得到矩阵,只不过是a的每一个数减去b中的每一个数


//乘法
a=np.array([1,2,3,4])
b=np.range(4)//内容为从0-3的一维矩阵

c=a*b
print(c)//依然是得到矩阵,只不过是a的每一个数*去b中的每一个数



//取整除法
a=np.array([1,2,3,4])
b=np.range(4)//内容为从0-3的一维矩阵

c=a/b
print(c)//依然是得到矩阵,只不过是a的每一个数/去b中的每一个数取整

2.特色运算

//比较大小,返回布尔类型
a=np.array([1,2,3,4])
b=np.array([5,6,7,8])
c=a<b
print(c)
//结果为
[ True  True  True  True]


//多维矩阵适用的乘法
a=np.array([1,2,3,4])
b=np.array([5,6,7,8])
c=np.dot(a,b) or c=a.dot(b)
//线性代数上用的矩阵的乘法,结果为 70

//平方
a=3;
a**2==9//几次方用**n表示

// 三角函数

a=np.array([1,2,3,4])
b=np.array([5,6,7,8])

c=np.sin(a)//对a中每一个数求sin 也可以用其他的三角函数

print(c)

//求矩阵的和,最大值,最小值 
a=np.random.random((2,2))//用随机数生成一个2行2列的矩阵
print(a)

[[0.34700893 0.85088823]
 [0.95787822 0.248027  ]]

//axis 代表轴,0为y轴,1为x轴
//第一个为沿着y轴求和,第三个为沿着y轴求最大值, 第五个为沿着y轴求最小值
print(np.sum(a,axis=0))  //[1.30488715 1.09891523]
print(np.sum(a,axis=1)) //[1.19789715 1.20590522]
print(np.max(a,axis=0))//[0.95787822 0.85088823]
print(np.max(a,axis=1))//[0.85088823 0.95787822]
print(np.min(a,axis=0))//[0.34700893 0.248027  ]
print(np.min(a,axis=1))//[0.34700893 0.248027  ]

3.求某个特色值的索引

a=np.arange(2,14).reshape((3,4))
[[ 2  3  4  5]
 [ 6  7  8  9]
 [10 11 12 13]]
//求最大最小值的索引
print(np.argmax(a)) //11 注意是索引 不是第几个数!!!!!
print(np.argmin(a))//0

//求平均值
print(a.mean())//注意带括号 答案为 7.5
print(np.average(a))//答案为 7.5

//求中位数
print(np.median(a)) //7.5

//累加并且保存:累加一次保存一次
print(np.cumsum(a))//[ 2  5  9 14 20 27 35 44 54 65 77 90]

//累差并保存:累差是相邻两个数做差,连着减有点不合理

print(np.diff(a))//[[1 1 1]
                    [1 1 1]
                    [1 1 1]]  维度和原矩阵一致

//排序 
printf(np.sort(a))//因为原来就是有序的,所以和原来的矩阵一样


//矩阵的转置
np.transpose(a)

//原来的a是
[[ 2  3  4  5]
 [ 6  7  8  9]
 [10 11 12 13]]

//转置之后是
[[ 2  6 10]
 [ 3  7 11]
 [ 4  8 12]
 [ 5  9 13]]

//矩阵的修剪
print(np.clip(a,5,9)) //让小于5的数都等于5,大于9的数都等于9,这样就能保留5-9之间的数了
[[5 5 5 5]
 [6 7 8 9]
 [9 9 9 9]]
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值