189 8069 5689

dim函数python 函数DIM怎样使用

如果在模块的声明段中有Option Base 0语句,则在该模块中使用Dim a(6,3 To 5

option base是对6的下限为0,即0,1,2,3,4,5,6共7个数;

成都创新互联公司是专业的巴彦网站建设公司,巴彦接单;提供成都做网站、成都网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行巴彦网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

3to5是3,4,5 共3个数;元素个数=7*3=21。

例如:这是一个4行5列的数组,元素个数为20个。因为你在定义时使用了Option Base 1,限制了元素的下标从1开始。也就是列数5是从1--5,行元素在定义的时候做了限制2--5。

定义的数组名是A,括号里的头一个是2TO5意思是2--5,2--5是2,3,4,5所以是4行。括号里后面的是5,是从1开始,1,2,3,4,5,所以是5列。

扩展资料:

该示例使用 Option Base语句来取代数组下标的缺省值0。LBound函数返回数组的指定维数的最小可用下标。Option Base语句只能在模块级使用。

Option base 1 '将缺省的数组下标设为1。

Dim LowerDim MyArray(20), TwoDArray(3, 4) '声明数组变量。

Dim ZeroArray(0 To 5) '取代缺省的下标。 '使用LBound 函数来测试数组的下界。

Lower = LBound(MyArray) '返回1。

Lower = LBound(TwoDArray, 2) '返回1。

Lower = LBound(ZeroArray) '返回0。

参考资料来源:百度百科-Option Base

Python气象数据处理与绘图(2):常用数据计算方法

对于气象绘图来讲,第一步是对数据的处理,通过各类公式,或者统计方法将原始数据处理为目标数据。

按照气象统计课程的内容,我给出了一些常用到的统计方法的对应函数:

在计算气候态,区域平均时均要使用到求均值函数,对应NCL中的dim_average函数,在python中通常使用np.mean()函数

numpy.mean(a, axis, dtype)

假设a为[time,lat,lon]的数据,那么

需要特别注意的是,气象数据中常有缺测,在NCL中,使用求均值函数会自动略过,而在python中,当任意一数与缺测(np.nan)计算的结果均为np.nan,比如求[1,2,3,4,np.nan]的平均值,结果为np.nan

因此,当数据存在缺测数据时,通常使用np.nanmean()函数,用法同上,此时[1,2,3,4,np.nan]的平均值为(1+2+3+4)/4 = 2.5

同样的,求某数组最大最小值时也有np.nanmax(), np.nanmin()函数来补充np.max(), np.min()的不足。

其他很多np的计算函数也可以通过在前边加‘nan’来使用。

另外,

也可以直接将a中缺失值全部填充为0。

np.std(a, axis, dtype)

用法同np.mean()

在NCL中有直接求数据标准化的函数dim_standardize()

其实也就是一行的事,根据需要指定维度即可。

皮尔逊相关系数:

相关可以说是气象科研中最常用的方法之一了,numpy函数中的np.corrcoef(x, y)就可以实现相关计算。但是在这里我推荐scipy.stats中的函数来计算相关系数:

这个函数缺点和有点都很明显,优点是可以直接返回相关系数R及其P值,这避免了我们进一步计算置信度。而缺点则是该函数只支持两个一维数组的计算,也就是说当我们需要计算一个场和一个序列的相关时,我们需要循环来实现。

其中a[time,lat,lon],b[time]

(NCL中为regcoef()函数)

同样推荐Scipy库中的stats.linregress(x,y)函数:

slop: 回归斜率

intercept:回归截距

r_value: 相关系数

p_value: P值

std_err: 估计标准误差

直接可以输出P值,同样省去了做置信度检验的过程,遗憾的是仍需同相关系数一样循环计算。

(Python)numpy 常用操作

不放回取样:

从列表ori中不放回地取n个数

通过这种操作,我们可以获得一个二维列表的子集:

(如果这个二维列表是图的邻接矩阵,那么就是对图进行随机采样,获得一个图的子图)

首先要注意,"+" 操作对于list和numpy.array是完全不同的

python 中的list,"+"代表拼接:

在numpy.array中,"+"代表矩阵相加

keepdim指的是维度不变,常在sum中使用。如:

会发现,keepdim之后还是二维的

这里要注意,pytorch和numpy里max()函数的返回值是不同的

pytorch:

也就是说,max(1)代表求第一维的最大值,对于二维数组来说,就是求纵向的最大值,然后,第一个返回值是最大值所形成数组,第二个返回值是最大值所在的索引。这一个技巧在机器学习的分类任务中很常用,比如我们的分类任务是把数据分成m类,那么最终我们模型的输出是m维的,对于n个样本就是n*m,如果要判断我们的模型最终的分类结果,就是找n个样本里,每个样本m维输出的最大值索引,代表样本是这个类的可能性最大。我们可以方便地用这种方式找到最大值地索引:

其中test_out是模型输出,predict_y则是分类结果

另外一点要注意的是,numpy与pytorch不同,numpy的max()只有一个返回值:

也就是说,numpy.max()不会返回最大值所在的索引

python三维卷积可以用什么函数? matlab只要用convn

写了一个输入和卷积核dim=2是一样的(都是3)的卷积函数,可以试试多加一个for循环变成三维卷积

def conv3D(image, filter):

'''

三维卷积

:param image: 输入,shape为 [h,w,c], c=3

:param filter:  卷积核,shape为 [x,y,z], z=3

:return:

'''

h, w, c = image.shape

x, y, z = filter.shape

height_new = h - x + 1  # 输出 h

width_new = w - y + 1  # 输出 w

image_new = np.zeros((height_new, width_new), dtype=np.float)

for i in range(height_new):

for j in range(width_new):

r = np.sum(image[i:i+x, j:j+x, 0] * filter[:,:,0])

g = np.sum(image[i:i+y, j:j+y, 1] * filter[:,:,1])

b = np.sum(image[i:i+z, j:j+z, 2] * filter[:,:,2])

image_new[i, j] = np.sum([r,g,b])

image_new = image_new.clip(0, 255)

image_new = np.rint(image_new).astype('uint8')

return image_new

pytorch 常用函数参数详解

1、torch.cat(inputs, dim=0) - Tensor 

参考链接:

[Pytorch] 详解 torch.cat()

Pytorch学习笔记(一):torch.cat()模块的详解

函数作用:cat 是 concatnate 的意思:拼接,联系在一起。在给定维度上对输入的 Tensor 序列进行拼接操作。torch.cat 可以看作是 torch.split 和 torch.chunk 的反操作

参数:

inputs(sequence of Tensors):可以是任意相同类型的 Tensor 的 python 序列

dim(int, optional):defaults=0

dim=0: 按列进行拼接 

dim=1: 按行进行拼接

dim=-1: 如果行和列数都相同则按行进行拼接,否则按照行数或列数相等的维度进行拼接

假设 a 和 b 都是 Tensor,且 a 的维度为 [2, 3],b 的维度为 [2, 4],则

torch.cat((a, b), dim=1) 的维度为 [2, 7]

2、torch.nn.CrossEntropyLoss()

函数作用:CrossEntropy 是交叉熵的意思,故而 CrossEntropyLoss 的作用是计算交叉熵。CrossEntropyLoss 函数是将 torch.nn.Softmax 和 torch.nn.NLLLoss 两个函数组合在一起使用,故而传入的预测值不需要先进行 torch.nnSoftmax 操作。

参数:

input(N, C):N 是 batch_size,C 则是类别数,即在定义模型输出时,输出节点个数要定义为 [N, C]。其中特别注意的是 target 的数据类型需要是浮点数,即 float32

target(N):N 是 batch_size,故 target 需要是 1D 张量。其中特别注意的是 target 的数据类型需要是 long,即 int64

例子:

loss = nn.CrossEntropyLoss()

input = torch.randn(3, 5, requires_grad=True, dtype=torch.float32)

target = torch.empty(3, dtype=torch.long).random_(5)

output = loss(input, target)

output

输出为:

tensor(1.6916, grad_fn=NllLossBackward)


网站栏目:dim函数python 函数DIM怎样使用
转载源于:http://cdxtjz.com/article/hhesch.html

其他资讯