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://ybzwz.com/article/hhesch.html