科学计算
文章平均质量分 54
用Python或MATLAB进行数值计算
Wanderer001
AR/VR软件与硬件技术:图像增强、图像分类、语义分割、目标检测、目标跟踪、风格迁移、强化学习、三维重建、SLAM
展开
-
Nump学习之np.empty()函数
np.empty() 函数语法如下:empty(shape[, dtype, order])依给定的shape, 和数据类型 dtype, 返回一个一维或者多维数组,数组的元素不为空,为随机产生的数据。其中参数解释如下:shape: 整数或者整型元组定义的返回数组的形状。dtype:数据类型, 定义返回数组的类型,可选。 如dtype = intorder: {'C', 'F'}, 规定返回数组元素在内存的存储顺序。 可选。C - rowmajor ; F - colum...原创 2022-03-02 12:23:46 · 3056 阅读 · 0 评论 -
np.nan_to_num
numpy.nan_to_num(x, copy=True, nan=0.0, posinf=None, neginf=None)描述使用0代替数组x中的nan元素,使用有限的数字代替inf元素(默认行为)或者用户使用nan、posinf和neginf关键字来定义数字参数x : scalar or array_like输入数据copy : bool, optionalif True,则创建x的副本if False,则在原对象上替换nan : int, flo.原创 2022-03-02 12:23:48 · 1078 阅读 · 0 评论 -
np.cumsum
numpy.cumsum()numpy.cumsum(a, axis=None, dtype=None, out=None)axis=0,按照行累加。axis=1,按照列累加。axis不给定具体值,就把numpy数组当成一个一维数组。-----------------直接看例子-------------->>> a = np.array([[1,2,3], [4,5,6]])>>> aarray([[1, 2, 3], [4原创 2022-02-28 10:44:26 · 231 阅读 · 0 评论 -
np.logical_and/or/not
np.logical_and (逻辑与)Syntaxnp.logical_and(x1, x2, *args, **kwargs)Test>>> np.logical_and(True, False)False>>> np.logical_and([True, False], [False, False])array([False, False], dtype=bool)>>> x = np.arange(5)>>原创 2022-02-28 10:44:23 · 260 阅读 · 0 评论 -
np.nanmean, np.nanmax
np.nanmean, np.nanmax, np.nanmin 的应用我们在对一个python numpy数组求均值或最大值的时候,如果这个数组里包含nan,那么程序就会报错或者求出来的值是nan,如下所示import numpy as npIn [1]: import numpy as npIn [2]: test = np.array([3,5,4,7,np.nan])In [3]: m = test.mean()In [4]: mOut[4]: nanIn [5]:原创 2022-02-28 10:44:20 · 1342 阅读 · 0 评论 -
np.concatenate
numpy.concatenate((a1,a2,…), axis=0)函数,能够一次完成多个数组的拼接。其中a1,a2,…是数组类型的参数示例:>>> a=np.array([1,2,3])>>> b=np.array([11,22,33])>>> c=np.array([44,55,66])>>> np.concatenate((a,b,c),axis=0) # 默认情况下,axis=0可以不写array([ 1,原创 2022-03-02 12:25:00 · 395 阅读 · 0 评论 -
np.logspace()
等比数列通项为:基本语法:np.logspace( start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0, )示例 1: np.logspace(1, 10, 10, base=2)示例 2: np.logspace(1, 10, 10, base=3)示例 3: np.logspace(1, 10, 10, base=2) + 1...原创 2022-03-02 12:25:04 · 287 阅读 · 0 评论 -
np.insert
np.insert(arr, obj, values, axis)#arr原始数组,可一可多,obj插入元素位置,values是插入内容,axis是按行按列插入。插入的数组是一维的import numpy as npa = np.array([1,4,6,5,6,8])np.insert(a,0,9)array([9, 1, 4, 6, 5, 6, 8])#插入元素都是在所给位置之前多维:如果axis没有给出,相当于是做降维操作,与一维数组一致a = np.array([[.原创 2022-03-03 12:04:48 · 774 阅读 · 0 评论 -
python的operator模块
01:什么是operatoroperator模块是python中内置的操作符函数接口,它定义了一些算术和比较内置操作的函数。operator模块是用c实现的,所以执行速度比python代码快02:函数的映射操作03:简单的实例:# 导入模块from operator import lt# 调整lt比较大小print(lt(2,4))mul(a, b)——支持数/列表/元组与数相乘a = [1,2,3]b=2print(mul(a,b))# 输出结果...原创 2022-03-03 12:04:59 · 2381 阅读 · 0 评论 -
tf/np.transpose()
第一步:搞清原矩阵的shape,比如下面(2,2,4)第二步:原矩阵顺序为(0,1,2),判定是几步转置。比如,(1,0,2),一步转置。如果是(1,2,0),就是两步转置,分成两个一步就可以了。第三步:把转置后的位置画好。如上,还是,shape还是(2,2,4),但是,一、二维已经换了。你就把现在的相应数据的坐标,一、二维位置互换一下,互换之后找到转置前的矩阵对应坐标,就是那个数了。>>> arrarray([[[ 0, 1, 2, 3], [ 4,原创 2022-03-03 12:05:31 · 305 阅读 · 0 评论 -
tf.reduce_max()
tf.reduce_max( input_tensor, axis=None, name=None,)函数是求按axis方向的最值,axis=0按列求最值,axis=1按行求最值。其中有时候会看到参数没有axis,而是reduction_indices=None,其实两者相等,不过后者是axis废弃的名称。另外该函数等价于np.max:(a, axis=None, out=None, keepdims=False)import tensorflow as tfi.原创 2022-03-03 12:05:40 · 442 阅读 · 0 评论 -
np.split 用法详解
np.split(ary, indices_or_sections, axis=0)函数功能:把一个数组从左到右按顺序切分参数:ary:要切分的数组indices_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置axis:沿着哪个维度进行切向,默认为0,横向切分先来看一下一维数组的情况import numpy as npx = np.array([0,1,2,3,4,5,6,7,8])print (np.split(x,...原创 2022-03-03 12:05:48 · 9219 阅读 · 1 评论 -
Nump学习之np.empty()函数
np.empty() 函数语法如下:empty(shape[, dtype, order])依给定的shape, 和数据类型 dtype, 返回一个一维或者多维数组,数组的元素不为空,为随机产生的数据。其中参数解释如下:shape: 整数或者整型元组定义的返回数组的形状。dtype:数据类型, 定义返回数组的类型,可选。 如dtype = intorder: {'C', 'F'}, 规定返回数组元素在内存的存储顺序。 可选。C - rowmajor ; F - colum...原创 2022-03-10 13:27:11 · 1552 阅读 · 0 评论 -
Numpy中扁平化函数ravel()和flatten()的区别
在Numpy中经常使用到的操作由扁平化操作,Numpy提供了两个函数进行此操作,他们的功能相同,但在内存上有很大的不同.先来看这两个函数的使用:from numpy import * a = arange(12).reshape(3,4)print(a)# [[ 0 1 2 3]# [ 4 5 6 7]# [ 8 9 10 11]]print(a.ravel())# [ 0 1 2 3 4 5 6 7 8 9 10 11]print(a.fl原创 2022-03-10 13:27:22 · 1177 阅读 · 2 评论 -
np.logspace()
等比数列通项为:an = a1 * qn-1基本语法:np.logspace( start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0, )示例 1: 2nnp.logspace(1, 10, 10, base=2)示例 2: 3nnp.logspace(1, 10, 10, base=3)示例 3: 1 + 2nnp.logspace(1, 10, 10, base=2) + ...原创 2022-03-17 09:11:33 · 598 阅读 · 0 评论 -
numpy.insert()
Numpy函数insert函数 numpy.insert可以有三个参数(arr,obj,values),也可以有4个参数(arr,obj,values,axis): 第一个参数arr是一个数组,可以是一维的也可以是多维的,在arr的基础上插入元素 第二个参数obj是元素插入的位置 第三个参数values是需要插入的数值 第四个参数axis是指示在哪一个轴上对应的插入位置进行插入如果第四个参数没有给出,那么就默认为先对arr进行flatten操作,变为一维数组,然后再在对应的位置上插入对应的值原创 2022-03-17 09:11:38 · 625 阅读 · 0 评论 -
numpy 数组增加列,增加行的函数:column_stack,row_stack,删除行或列的函数,delete
def fun_ndarray(): a = [[1,2,7], [-6,-2,-3], [-4,-8,-55] ] b = [3,5,6] a = np.array(a) b = np.array(b) a_b_column = np.column_stack((a,b))#左右根据列拼接 a_b_row = np.row_stack((a,b))#上下按照行拼接 ..原创 2022-03-18 10:40:19 · 835 阅读 · 0 评论 -
np.argsort()
在深度学习Mnist案例中遇到了argsort()函数,查了相关资料,把它的用法整理如下。numpy.argsort(a, axis=-1, kind=’quicksort’, order=None) 功能: 将矩阵a按照axis排序,并返回排序后的下标参数: a:输入矩阵, axis:需要排序的维度返回值: 输出排序后的下标(一维数组)import numpy as npx = np.array([1,4,3,-1,6,9])x.argsort()# array([3,原创 2022-03-18 10:40:37 · 701 阅读 · 1 评论 -
numpy中np.finfo用法
例子:"""np.finfo使用方法eps是一个很小的非负数除法的分母不能为0的,不然会直接跳出显示错误。使用eps将可能出现的零用eps来替换,这样不会报错。"""import numpy as npx = np.array([1, 2, 3], dtype=float)eps = np.finfo(x.dtype).eps # eps = 2.220446049250313e-16 type = <class 'numpy.float64'>pri原创 2022-03-18 10:40:54 · 1054 阅读 · 0 评论 -
np.sort()函数的作用
np.sort函数的作用np.sort()函数的作用np.sort()函数的作用是对给定的数组的元素进行排序a:需要排序的数组axis:指定按什么排序,默认axis = 1 按行排序, axis = 0 按列排序1.按行排序axis = 1 或为默认值,不写这个参数。结果如图:2.按列排序axis = 0承接Matlab、Python和C++的编程,机器学习、计算机视觉的理论实现及辅导,本科和硕士的均可,咸鱼交易,专业回答请走知乎,详谈请联系QQ号7571..原创 2022-03-18 10:41:06 · 2155 阅读 · 0 评论 -
Numpy库之swapaxes(a,x,y)方法理解
ndarray对象的操作函数之np.swapaxes(a,x,y)等价于 a.swapaxes(x,y)import numpy as npa = np.arange(24).reshape((2,3,4))生成如下数组:方法理解:a.swapaxes(x,y),是将n维数组中两个维度进行调换,其中x,y的值为a.shape值(2,3,4)元组中的索引值(下标)。承接Matlab、Python和C++的编程,机器学习、计算机视觉的理论实现及辅导,本科和硕士的均可,咸鱼交易,专.原创 2022-03-18 10:41:12 · 2286 阅读 · 0 评论 -
np.unique
去除数组中的重复数字,并进行排序之后输出。要求是 arr 里面是相同的维数。import numpy as npresult1 = np.unique([1, 1, 2, 2, 2, 3, 3, 4])print(type(result1)) # <class 'numpy.ndarray'>print(result1) # [1 2 3 4]arr = np.array([[1, 2], [3, 3]])result2 = np.unique(arr)print原创 2022-03-18 10:41:25 · 313 阅读 · 1 评论 -
np.clip()的用法
numpy.clip(a, a_min, a_max, out=None)Clip (limit) the values in an array.Given an interval, values outside the interval are clipped to the interval edges. For example, if an interval of [0, 1] is specified, values smaller than 0 become 0, and values lar原创 2022-03-20 13:40:47 · 1574 阅读 · 2 评论 -
numpy.random
from numpy import randomnumpy.random.uniform(low=0.0, high=1.0, size=None)生出size个符合均分布的浮点数,取值范围为[low, high),默认取值范围为[0, 1.0)>>> random.uniform()0.3999807403689315>>> random.uniform(size=1)array([0.55950578])>>> random..原创 2022-03-20 13:40:57 · 320 阅读 · 0 评论 -
np.cumsum
numpy.cumsum()numpy.cumsum(a, axis=None, dtype=None, out=None)axis=0,按照行累加。axis=1,按照列累加。axis不给定具体值,就把numpy数组当成一个一维数组。>>> a = np.array([[1,2,3], [4,5,6]])>>> a>>> np.cumsum(a)array([ 1, 3, 6, 10, 15, 21])>&g原创 2022-03-21 10:36:14 · 351 阅读 · 0 评论 -
numpy.iinfo()
numpy.iinfo()函数显示整数类型的机器限制。用法: numpy.iinfo(dtype)参数:dtype:[整数类型,dtype或实例]要获取其有关信息的整数数据类型的种类。返回:整数类型的机器限制。代码1:# Python program explaining # numpy.iinfo() function # importing numpy as geek import numpy as geek gfg = geek....原创 2022-03-21 10:36:34 · 1681 阅读 · 0 评论 -
np.logspace()
等比数列通项为:an = a1 * qn-1基本语法:np.logspace( start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0, )示例 1: 2nnp.logspace(1, 10, 10, base=2)示例 2: 3nnp.logspace(1, 10, 10, base=3)示例 3: 1 + 2nnp.logspace(1, 10, 10, base=2) +...原创 2022-03-19 10:24:21 · 508 阅读 · 0 评论 -
numpy中np.array()与np.asarray的区别以及.tolist
array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会。1、输入为列表时a=[[1,2,3],[4,5,6],[7,8,9]]b=np.array(a)c=np.asarray(a)a[2]=1print(a)print(b)print(c)从中我们可以看出np.array与np.asarray功能是一样的,都是将输入转为矩阵格式。当输入是列表原创 2022-03-19 10:24:29 · 469 阅读 · 1 评论 -
numpy中np.column_stack()和np.row_stack()
在numpy库中,对于矩阵的合并操作用两种方法:行合并:np.row_stack()列合并:np.column_stack()具体操作见下面的程序:>>> import numpy as np>>> a=np.arange(16).reshape(4,-1)>>> aarray([[ 0, 1, 2, 3],[ 4, 5, 6, 7],[ 8, 9, 10, 11],[12, 13, 14, 15]])&.原创 2022-03-09 10:12:40 · 1983 阅读 · 0 评论 -
np.random.normal()正态分布
高斯分布的概率密度函数numpy中numpy.random.normal(loc=0.0,scale=1.0,size=None) 参数的意义为: loc:float 概率分布的均值,对应着整个分布的中心center scale:float 概率分布的标准差,对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高 size:int or tuple of ints 输出的shape,默认为None,只输出一个值...原创 2022-03-09 10:12:46 · 2090 阅读 · 0 评论 -
numpy.fliplr()用法
np.fliplr()矩阵左右翻转,在二维的情况下很容易理解。维度更高的话一开始没有搞懂,实际也挺简单。原来矩阵的写成下面这样:[ [[0,1], [2, 3]] [[4,5], [6, 7]] ]将 [0, 1], [2, 3], [4, 5], [6, 7] 看成二维情况下的一个数。那么左右交换就是 [2, 3] 与 [0, 1] 交换…最后变成:[[[2, 3], [0, 1]][[6, 7], [4, 5]] ]用于图像的水平翻转对图像进行翻转,只需.原创 2022-03-09 10:12:50 · 2137 阅读 · 0 评论 -
np.repeat()
np.repeat() np.repeat()用于将numpy数组重复。numpy.repeat(a, repeats, axis=None);参数:axis=0,沿着y轴复制,实际上增加了行数axis=1,沿着x轴复制,实际上增加了列数1. 一维数组重复3次# 随机生成[0, 5)之间的数,形状1行4列,将此数组按y轴重复3次import numpy as nppop = np.random.randint(0, 5, size=(1, 4)).repeat(3, axis原创 2022-03-22 10:42:05 · 773 阅读 · 0 评论 -
python之np.tile()
Numpy的tile()函数,就是将原矩阵横向、纵向地复制。tile是瓷砖的意思,顾名思义,这个函数就是把数组像瓷砖一样铺展开来。例1:解释:b是一个数, 在同一个列表中把a横向铺展了21遍。例2:例3:解释:相当于拓展至3行。承接Matlab、Python和C++的编程,机器学习、计算机视觉的理论实现及辅导,本科和硕士的均可,咸鱼交易,专业回答请走知乎,详谈请联系QQ号757160542,非诚勿扰。...原创 2022-03-22 10:42:11 · 903 阅读 · 0 评论 -
numpy中append用法
主要记录二维矩阵的append用法np.append(fea_neg,fea_pos,axis=0)#axis=0表示将两个矩阵上下堆叠,比如两个矩阵维度均为(3,4)则堆叠后为(6,4)np.append(fea_neg,fea_pos,axis=1)#axis=1表示左右拼接,比如两个矩阵维度均为(3,4)则堆叠后为(3,8)承接Matlab、Python和C++的编程,机器学习、计算机视觉的理论实现及辅导,本科和硕士的均可,咸鱼交易,专业回答请走知乎,详谈请联系QQ号757160542,.原创 2022-03-22 10:42:38 · 3818 阅读 · 0 评论 -
Numpy计算三角函数
numpy可以直接使用 numpy.sin()函数计算三角函数,以sin为例:计算30度的sin值:import numpy as nprad = 30 / 180 * np.pi # 转化为弧度值 print(np.sin(rad)) # 得到30度的正弦反三角函数使用 np.arcsin() 函数即可,余弦cos(),等同理承接Matlab、Python和C++的编程,机器学习、计算机视觉的理论实现及辅导,本科和硕士的均可,咸鱼交易,专业回答请走知乎,详谈请联系QQ号757.原创 2022-03-26 09:21:33 · 2539 阅读 · 0 评论 -
numpy.random.uniform均匀分布
numpy.random.uniform介绍:1. 函数原型: numpy.random.uniform(low,high,size)功能:从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high.参数介绍: low: 采样下界,float类型,默认值为0; high: 采样上界,float类型,默认值为1; size: 输出样本数目,为int或元组(tuple)类型,例如,size=(m,n,k), 则输出m*n*k个样本...原创 2022-03-27 09:57:51 · 1836 阅读 · 0 评论 -
np.random.normal()正态分布
高斯分布的概率密度函数numpy中numpy.random.normal(loc=0.0,scale=1.0,size=None) 参数的意义为: loc:float 概率分布的均值,对应着整个分布的中心center scale:float 概率分布的标准差,对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高 size:int or tuple of ints 输出的shape,默认为None,只输出一个值 我们更经常会用到np.ran...原创 2022-03-27 09:57:57 · 1051 阅读 · 0 评论 -
numpy.clip使数组中的值保持在一定区间内
numpy.clip使数组中的值保持在一定区间内np.clip()给定一个区间范围,区间范围外的值将被截断到区间的边界上。例如,如果指定的区间是 [-1,1],小于-1 的值将变为-1,而大于 1 的值将变为 1。array = np.array([10, 7, 4, 3, 2, 2, 5, 9, 0, 4, 6, 0])print(np.clip(array,2,6))#输出:[6 6 4 3 2 2 5 6 2 4 6 2]小于2的元素变为2,大于6的元素变为6,一行代码的简洁和原创 2022-03-26 09:22:00 · 576 阅读 · 0 评论 -
Numpy 中的矩阵求逆
1. 矩阵求逆import numpy as npa = np.array([[1, 2], [3, 4]]) # 初始化一个非奇异矩阵(数组)print(np.linalg.inv(a)) # 对应于MATLAB中 inv() 函数# 矩阵对象可以通过 .I 更方便的求逆A = np.matrix(a)print(A.I)2. 矩阵求伪逆import numpy as np# 定义一个奇异阵 AA = np.zeros((4, 4))A[0, -1] = 1原创 2022-03-26 09:22:16 · 6173 阅读 · 0 评论 -
numpy基础属性方法随机整理(8):矩阵乘法 及 对应元素相乘的矩阵乘法
矩阵运算基础知识参考:矩阵的运算及其规则注意区分数组和矩阵的乘法运算表示方法(详见第三点代码)1) matrix multiplication矩阵乘法: (m,n) x (n,p) --> (m,p) # 矩阵乘法运算前提:矩阵1的列=矩阵2的行3种用法: np.dot(matrix_a, matrix_b) == matrix_a @ matrix_b == matrix_a * matrix_b2) element-wise product : 矩阵对应元素相乘1种用法:np.原创 2022-03-26 09:22:31 · 2667 阅读 · 0 评论