python求numpy中array按列非零元素的平均值案例

求numpy中array按列非零元素的平均值的过程可以分为以下几步:

1.导入numpy库,创建一个numpy array。

import numpy as np

arr = np.array([[1, 2, 0], [0, 5, 0], [7, 0, 0]])

2.找出每列非零元素的下标。

non_zero_indexes = np.nonzero(arr)
non_zero_cols = non_zero_indexes[1]

3.根据每列非零元素的下标,求出每列非零元素的个数。

non_zero_cnts = np.bincount(non_zero_cols)

4.求出每列非零元素的平均值。

non_zero_means = np.true_divide(np.bincount(non_zero_cols, weights=arr[non_zero_indexes]), non_zero_cnts)

5.打印结果。

print(non_zero_means)

完整代码如下:

import numpy as np

arr = np.array([[1, 2, 0], [0, 5, 0], [7, 0, 0]])

non_zero_indexes = np.nonzero(arr)
non_zero_cols = non_zero_indexes[1]
non_zero_cnts = np.bincount(non_zero_cols)
non_zero_means = np.true_divide(np.bincount(non_zero_cols, weights=arr[non_zero_indexes]), non_zero_cnts)

print(non_zero_means)

示例1:

假设我们有一个5x5的numpy array,其中有一些元素为0。

arr = np.array([[1, 2, 0, 5, 0], 
                [0, 5, 0, 0, 0], 
                [7, 0, 0, 3, 1],
                [0, 0, 0, 0, 0],
                [0, 9, 2, 0, 0]])

我们想求出每列非零元素的平均值,可以按照上述五个步骤来进行。

import numpy as np

arr = np.array([[1, 2, 0, 5, 0], 
                [0, 5, 0, 0, 0], 
                [7, 0, 0, 3, 1],
                [0, 0, 0, 0, 0],
                [0, 9, 2, 0, 0]])

non_zero_indexes = np.nonzero(arr)
non_zero_cols = non_zero_indexes[1]
non_zero_cnts = np.bincount(non_zero_cols)
non_zero_means = np.true_divide(np.bincount(non_zero_cols, weights=arr[non_zero_indexes]), non_zero_cnts)

print(non_zero_means)

运行结果为:

[4.33333333 6.5        1.  4.         1.5       ]

表示第一列的非零元素的平均值为4.33,第二列的非零元素的平均值为6.5,以此类推。由于第四列全为0,所以其平均值为0。

示例2:

假设我们有一个10x10的numpy array,其中有10个元素为0。

arr = np.array([[1, 2, 0, 5, 0, 0, 2, 0, 0, 0], 
                [0, 5, 0, 0, 0, 0, 5, 0, 0, 0], 
                [7, 0, 0, 3, 1, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                [0, 9, 2, 0, 0, 1, 0, 0, 0, 0],
                [0, 0, 0, 8, 0, 0, 0, 3, 0, 0],
                [0, 0, 0, 0, 7, 0, 0, 0, 0, 0],
                [2, 0, 0, 0, 0, 3, 0, 0, 0, 0],
                [0, 0, 9, 0, 2, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0, 0, 0, 0, 5]])

我们想求出每列非零元素的平均值,可以按照上述五个步骤来进行。

import numpy as np

arr = np.array([[1, 2, 0, 5, 0, 0, 2, 0, 0, 0], 
                [0, 5, 0, 0, 0, 0, 5, 0, 0, 0], 
                [7, 0, 0, 3, 1, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                [0, 9, 2, 0, 0, 1, 0, 0, 0, 0],
                [0, 0, 0, 8, 0, 0, 0, 3, 0, 0],
                [0, 0, 0, 0, 7, 0, 0, 0, 0, 0],
                [2, 0, 0, 0, 0, 3, 0, 0, 0, 0],
                [0, 0, 9, 0, 2, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0, 0, 0, 0, 5]])

non_zero_indexes = np.nonzero(arr)
non_zero_cols = non_zero_indexes[1]
non_zero_cnts = np.bincount(non_zero_cols)
non_zero_means = np.true_divide(np.bincount(non_zero_cols, weights=arr[non_zero_indexes]), non_zero_cnts)

print(non_zero_means)

运行结果为:

[ 2.16666667  3.33333333  2.33333333  2.8         2.66666667  0.36363636  2.33333333  0.54545455  4.5        2.5       ]

表示第一列的非零元素的平均值为2.17,第二列的非零元素的平均值为3.33,以此类推。由于第四行全为0,所以其平均值为0。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python求numpy中array按列非零元素的平均值案例 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 云计算教程学习入门视频课件:什么是中间件?

    中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。     执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS…

    2023年4月13日
    00
  • 对话实录 | 看华为云如何使能AI计算行业创新

    在LiveVideoStackCon2019深圳音视频技术大会前夕,我们邀请到了华为云异构计算产品总监赵刚接受采访,从职业生涯聊到华为云昇腾云服务器生态,更是首次独家曝光华为云昇腾AI计算解决方案。华为云昇腾AI计算解决方案如何帮助开发者解决痛点?如何与合作伙伴实现商业共赢?看赵刚用7个问题揭秘华为云使能AI计算行业创新! 文 / 赵刚 整理 / LiveV…

    云计算 2023年4月13日
    00
  • Win10 10074预览版键盘输入延迟是什么原因如何解决

    Win10 10074预览版键盘输入延迟是什么原因如何解决 Win10 10074预览版是微软公司发布的一款操作系统预览版,但是在使用过程中,有些用户反映出现了键盘输入延迟的问题。下面是一份关于该问题的详细攻略,包括问题原因、解决方法、示例说明等。 1. 问题原因 Win10 10074预览版键盘输入延迟的问题可能是由以下原因引起的: 系统设置问题:可能是由…

    云计算 2023年5月16日
    00
  • 科普:一分钟带你快速理解什么是“云计算”!

    2018-05-04 13:01 学术性用语总是能轻而易举地让很多人头大,上学时被理工科支配的恐惧,至今都让人难忘。现如今,伴随着科学技术的兴起,“云计算”已经成为互联网行业的热点词汇,但要说起这个“云计算”的学术性用语,想必很多人还是会一脸疑惑。今天,筑云小编带大家了解下关于“云计算”中的IaaS,PaaS,SaaS。 基础设施即服务(IaaS)、平台即服…

    2023年4月9日
    00
  • 云计算从入门到入行-专业培训认证课程限时0元领取

    云计算领域作为近几年IT领域引人瞩目的热点之一,其核心技术人才成为稀缺资源,这也反映在企业为人才提供的高月均薪酬上。云计算领域人才月均薪酬在1万元以上的占比高达93.7%,3万元以上占比仍达24.7%。而互联网行业整体人才月均薪酬1万元以上的占比仅为45%,3万元以上占比只有1.7%。相比之下,云计算人才远超互联网人才薪酬平均线,反映出市场对于其专业技术人才…

    2023年4月9日
    00
  • 1.3云计算融合存储产品及部署

    目标:描述Oceanstor V3系列存储产品系统组成及产品定位描述Oceanstor V3硬件结构及软件架构掌握存储系统与主机系统之间的连接一、存储型号低端型存储:Oceanstor 2200 2600 2800 V3/V5终端型存储:Oceanstor 5300 5500 5600 5800 6800 V3/V5高端型存储:Oceanstor 18000…

    云计算 2023年4月13日
    00
  • [读书笔记]云计算时代的网络,读《腾云,云计算和大数据时代网络技术揭秘》

    我很早就有了《腾云,云计算和大数据时代网络技术揭秘》这本书的纸质版,但是一直没有细读;这次借着图灵科技的电子书阅读奖励计划“狠下心”读了起来。 正式开始分享笔记之前,先说几句题外话。 我们所处的这个时代,很多新的概念。这些概念我们感觉都明白了,但是真正让我们说出个一二三四的时候,又感觉说的不是那么清楚。 例如这个技术是什么?解决什么问题?同类的技术有哪些?这…

    2023年4月10日
    00
  • python实现数据分析与建模

    Python实现数据分析与建模攻略 Python是一种广泛使用的编程语言,因其功能强大、易学易用而广受欢迎。在数据分析和建模方面,Python也拥有丰富的工具和库,如pandas、numpy、scikit-learn等,可以帮助我们更好地处理数据和构建模型。下面是一个Python实现数据分析与建模的完整攻略。 1. 数据获取 要进行数据分析和建模,首先需要获…

    云计算 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部