首页 > 其他分享 >numpy深度学习常用函数及参数理解(axis, keepdims)

numpy深度学习常用函数及参数理解(axis, keepdims)

时间:2023-03-04 14:46:32浏览次数:31  
标签:下标 keepdims sum print exp np numpy axis

axis:

以axis=0为例,则沿着第0个下标(最左边的下标)变化的方向进行操作,
也就是将除了第0个下标外,其他两个下标都相同的部分分成一组,然后再进行操作
例如一个3*3的二维数组A(3, 3)
如果定义axis = 0,也就是说除了第一个下标可以不同,其他下标必须都相同,那么用C++的数组表示,分组如下:
第一组:A[0][0], A[1][0], A[2][0]
第二组:A[0][1], A[1][1], A[2][1]
第三组:A[0][2], A[1][2], A[2][2]

三维数组一样,就是axis指定的维度不一样,其他两个维度下标要一样。

当axis=-1时,-1代表倒数第一个,加入矩阵shape=[3,4,5],对于该矩阵也就是等于axis=2。

 

sum:

例如一个a:100*10

np.exp(a):100*10(相当对每个数进行e次幂)
np.sum(np.exp(a)):无结果,因为不知道是在哪个维度求和
np.sum(np.exp(a),axis=0):10(每列求和,最后变成长度为10的一维数组)
np.sum(np.exp(a),axis=0,keepdims=True):1*10(取共10列的每一列最大值)
np.sum(np.exp(a),axis=1):100(每行求和,最后变成长度为100的一维数组)
np.sum(np.exp(a),axis=1,keepdims=True):100*1 (共取100行的每一行最大值,但仍保留数组形状)

验证:

import numpy as np
x = np.random.rand(3,4)
print(x)
print(np.exp(x))
print(np.sum(np.exp(x)))
print(np.sum(x,axis=0))
print(np.sum(x,axis=0,keepdims=True))
print(np.sum(x,axis=1))
print(np.sum(x,axis=1,keepdims=True))

结果:

[[0.50487326 0.1234154  0.97036974 0.78872956]
 [0.16459544 0.84769524 0.78609429 0.91375372]
 [0.67774643 0.63490272 0.20362158 0.65253967]]
[[1.65677553 1.13135429 2.63891998 2.20059893]
 [1.17891608 2.33426074 2.19480738 2.49366551]
 [1.96943447 1.88683857 1.22583418 1.92041186]]
22.83181752378712
[1.34721514 1.60601336 1.9600856  2.35502295]
[[1.34721514 1.60601336 1.9600856  2.35502295]]
[2.38738796 2.71213869 2.1688104 ]
[[2.38738796]
 [2.71213869]
 [2.1688104 ]]

 

原文链接:https://blog.csdn.net/WILDCHAP_/article/details/107630484

标签:下标,keepdims,sum,print,exp,np,numpy,axis
From: https://www.cnblogs.com/lusiqi/p/17178257.html

相关文章

  • x为False却不执行if x is False?numpy.bool_的坑!
    话不多说,上代码:is_best=prec>best_precifis_bestisFalse:ifepoch-best_ep>30:return乍一看,EarlyStopping丐版实现嘛。但是实际运行的时候,is......
  • Pandas使用时间索引筛选时报错 AssertionError: <class 'numpy.ndarray'>
    Icameacrossthesimilarproblem,mysolutionwas:makesuretheindexistypeof'DatetimeIndex',Idothis:df.index=pd.to_datetime(df.index)sortedth......
  • torch&numpy常用函数总结
    np.dot()-向量内积np.matmul()&@运算符-矩阵乘法np.multiply()&*运算符-针对标量的运算(各个维度均可)&np.square()-等价于np.multiply(a,a)链接np.c_()a=n......
  • python numpy中的cumsum的用法
    1、函数作用该函数定义在multiarray.py中有定义defcumsum(self,axis=None,dtype=None,out=None):#realsignatureunknown;restoredfrom__doc__"""......
  • Python - Numpy 学习笔记
     #python-Numpylearningimportnumpyasnp#---Numpy学习笔记---(第四章)---#切片,浅拷贝a=np.arange(10)print(a)b=a[2:7]print(b)a[5]=1000print(a)p......
  • 判断射线和AABB(Axis-Aligned Bounding Box)是否相交
    已知条件\(ori(x,y,z)\)表示射线起点坐标\(dir(x,y,z)\)表示射线方向(单位向量)\(Bound\)表示AABB包围盒\(Bound.MinBound\)表示包围盒在各轴向最小坐标\(Bound.M......
  • numpy.linspace
    numpy.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)start:序列的起始点.stop:序列的结束点num:生成的样本数,默认是50,非负。endpoint......
  • Numpy
    https://i-beta.cnblogs.com/posts/edit;postId=118585931、简介:NumPy(NumericalPython)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组......
  • 用dask并行把大量文本数据读入numpy并分批保存
    导入包importnumpyasnpimportosimportdask看看文件格式和file_list=os.listdir('train_data')print(len(file_list))print(file_list[:100])delayed读......
  • numpy手撕
    importnumpyasnpdefgelu(x):return0.5*x*(1+np.tanh(np.sqrt(2/np.pi)*(x+0.044715*x**3)))defsoftmax(x):exp_x=np.exp(x-np.max......