python broadcast 和 numpy.sum()函数
发布日期:2022-02-24 11:36:00 浏览次数:7 分类:技术文章

本文共 778 字,大约阅读时间需要 2 分钟。

import numpy as npa = np.random.random_sample((3,1,3))b  = np.random.random_sample((2,3))c = a-bc = np.square(c)c = np.sum(c,axis=2)c= np.sqrt(c)a1 = a[1,:,:]b1 = b[1,:]print(a1,'5')print(b1,'6')print(np.square(a1-b1).shape)print(np.sum(np.square(a1-b1),axis=1),'7')print(np.sqrt(np.sum(np.square(a1-b1),axis=1)))

python 的broadcast机制,适用于当两个array的形状不一样时,可以通过broadcast进行自动的补齐,从而可以减少使用循环所带来的代码量以及提高效率。它的补齐规则如下:

1.如果两个数组数据维度相同,如(3,1,2)与(1,2,2),且其中某个维度的rank是1,那么会将rank低的数据进行复制,直到两个数组的维度以及rank均相同
2.如果两个数组的维度不同,如(3,1,2)与(2,2),那么维度低的数组会加一,直到其维度与高维度的相匹配,加一的条件在于(1,2)与(2,2)可以进行broadcast,与情况一相同

numpy.sum()

sum()函数参数为numpy.sum(a, axis = )
axis代表相加的轴,初始从0开始
axis = i,则代表从维度i进行累加,其他维度不变
如 a.shape = (1,2,3,4)
则numpy.sum(a,axis = 0).shape = (2,3,4)
numpy .sum(a, axis =1).shape = (1,3,4)
.
.

转载地址:https://blog.csdn.net/ImposterSyntrome/article/details/82594497 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:机器学习之训练集,测试集,验证集划分
下一篇:如何在QT环境中使用openCV

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月19日 17时10分41秒