AI常用模块numpy

前言:在linux下安装numpy模块非常简单,执行pip install numpy即可

一.numpy的核心算法

ndarray (多维数组)

用法:

import numpy as np
a = np.ndarray((3,5)) 
print(a)
print(a.shape)  #矩阵的形状 三行五列
print(type(a))   #a的类型

输出的结果为

[[  6.90897762e-310   4.64536969e-310   0.00000000e+000   0.00000000e+000
    0.00000000e+000]
 [  0.00000000e+000   0.00000000e+000   0.00000000e+000   0.00000000e+000
    0.00000000e+000]
 [  0.00000000e+000   0.00000000e+000   0.00000000e+000   0.00000000e+000
    6.32404027e-322]]   # 这些仅代表形状
(3, 5)
<class 'numpy.ndarray'> # 可以理解为矩阵

接下来介绍一些numpy的一些方法:

numpy方法解释
1.numpy.dtype指定当前numpy对象的整体数据
2.numpy.ndim数组轴的个数,在python中轴的个数称为秩
3.numpy.shape轴,查看数组的形状,对于矩阵n行m列
4.numpy.reshape(n,m)矩阵转置,改变数组的形状为n行m列
5.numpy.size数组元素的个数,等于shape属性中元组元素的乘积
6.numpy.itemsize对象中每个元素的大小, 单位字节
7.numpy.ndarray((n,m))创建一个n行m列的矩阵但没有实际数据
8.numpy.array(((2,3,4),(1,2,3)))创建一个两行三列的数组
9.numpy.arange(x,y,z)和python中range的用法一样,x起始,y截止,z步长
10.numpy.arange(24).reshape((2,3,4))创建一个2维3行4列的数据可以索引和切片
11.numpy.linspace(x,y,z)等间距生成,x起始,y截止,z个数
12.numpy.ones(n,m)生成n行m列内容都是1的数组,可传递多维数组
13.numpy.zeros(n,m)生成n行m列内容都是0的数组,可传递多维数组
14.x.astype(numpy.bool)转换x数组的数据类型
15.numpy.mat()将python列表转化为矩阵matrix对像
16.numpy.matrix()将python列表转化为矩阵matrix对像(同上)
17.numpy.mat().getA()将matrix对象转成ndarray对象
18.x.tolist()转换成python列表, 用于和python原生结合写程序
19.numpy.tile()重复某个数组。比如tile(A,n),功能是将数组A重复n次,构成一个新的数组
20.x.T矩阵转置, 行变列, 列变行, 对角线翻转矩阵
21.numpy.multiply(x, y)矩阵x 矩阵y相乘(保证矩阵的行列相等,数值相等)
22.numpy.unique()数组去重, 并且从小到大生成一个新的数组
23.numpy.full([n,x, y], z)自定义模板数组, 生成n维度x行y列都是z的数组
24.numpy.eye(x)创建一个正方的x*x单位的矩阵, 对角线为1, 其余为0
25.numpy.flatten()数组降维, 不改变 原值
26.numpy.random.rand(x, y, z)/numpy.random.random((x, y, z))随机生成一个x维y行z列的数组
27.numpy.random.randn(x, y)正态分布随机数
28.numpy.random.randint(x,y,(z))整数在x和y(不包括z)之间随机z个数
29.x.sum(axis=None)求和, axis=0为列, 1为行.默认全部
30.numpy.argsort()矩阵每个元素坐标排序
31.numpy.sort()从小打大排序 有个参数axis默认值为1
32.numpy.mean(x,axis=None)求数组x的平均值
33.numpy.average(x,axis=None,weights=None)加权平均,weights加权值,不设为等权重
34.numpy.var(x,axis=None)方差:各数与平均数之差的平方的平均数
35.numpy.argmin(x,axis=None)求数组中最小值的坐标
36.numpy.median(x,axis=None)中位数
37.numpy.ptp(x,axis=None)元素最大值与最小值的差
38.numpy.cumsum()累加,cumsum和cumprod之类的方法不聚合,产生一个中间结果组成的数组,默认一维数组,1为按原样
39.numpy.cumprod()累乘
40.numpy.count_nonzero(arr > 0)计数非0值个数,布尔值会被强制转换为1和0,可以使用sum()对布尔型数组中的True值计数
41.(a,numpy.bool())测试数组中是否存在一个或多个True
numpy类型
bool布尔值
int整型
float浮点型
complex复数
object对象
string_ASCII字符
unicode_Unicode所有字符, 字节数平台决定

此外numpy还有一个最常用的方法

矩阵的乘法运算dot
例如出现这样一个情况:一个节目表演的,a去参加.表演完之后由5名观众和3名评委投票来决定是否通过.当然评委的权重值要比观众投票的权重值大.
观众和评委的投票结果如下(通过票就表示为1,不通过就用-1表示):
观众:a[-1,-1,1,-1,-1] b[-1,-1,1,1,-1]观众的权重值:0.2
评委:[1,-1,1] b[,1,1,-1] 评委的权重值为0.5
那么代码我们就可以这样写:

import numpy as np
grade = np.array(([-1,-1,1,-1,-1,1,-1,1],[-1,-1,1,1,-1,1,1,-1])) #把投票结果卸载一个数组里面
wv = np.array(((0.2),(0.2),(0.2),(0.2),(0.2),(0.5),(0.5),(0.5))) #对应的权重值
print('权重:',wv)
print('转化数组形状:',grade.T)  #运用dot,必须是一个n行m列的数组乘以m行x列的数组生成一个n行x列的数组,所以在这里要用.T转换形状
print('评分结果:'np.dot(wv,grade.T))  # dot把评分和对应的权重值相乘,然后结果相加

输出为:

权重: [ 0.2  0.2  0.2  0.2  0.2  0.5  0.5  0.5]
转化数组形状:
 [[-1 -1]
 [-1 -1]
 [ 1  1]
 [-1  1]
 [-1 -1]
 [ 1  1]
 [-1  1]
 [ 1 -1]]
评分结果: [-0.1  0.3]

显示结果a的最终评分-0.1<1+-1 所以不通过
b的最终评分-0.3>1+-1 所以通过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值