首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Numpy 2D数组占总数的百分比

Numpy 2D数组占总数的百分比
EN

Stack Overflow用户
提问于 2020-05-19 09:58:12
回答 1查看 6.6K关注 0票数 5

我刚开始吃朗皮..。

得到下面的np表,并要计算每个单元格在列总数中所占的百分比。

代码语言:javascript
运行
复制
data = np.array([[7,16,17], [12,11,3]])
headers = ["Grundskola", "Gymn", "Akademisk"]

# tabulate data
table = tabulate(data, headers, tablefmt="github")

# output
print(table)

|   Grundskola |   Gymn |   Akademisk |
|--------------|--------|-------------|
|            7 |     16 |          17 |
|           12 |     11 |           3 |

至:

代码语言:javascript
运行
复制
|   Grundskola |   Gymn |   Akademisk |
|--------------|--------|-------------|
|           39%|    59% |         85% |
|           61%|    41% |         15% |

我知道np.sum(data2,axis=0/1)会给出总数,但是如何计算数组。

数组的大小可以不同..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-19 10:06:59

你可以试试这个。使用numpy.sumaxis = 0,并将数组data除以超过轴0的和。

代码语言:javascript
运行
复制
data = np.array([[7, 16, 17],
                 [12, 11, 3]])

percentages = data/data.sum(axis=0) * 100

percentages
# array([[36.84210526, 59.25925926, 85.        ],
#        [63.15789474, 40.74074074, 15.        ]])

现在,在percentages函数中使用这个tabulate

您可以将mini string language格式设置为如下格式。

代码语言:javascript
运行
复制
perc = data / data.sum(axis=0)
# array([[0.36842105, 0.59259259, 0.85      ],
#        [0.63157895, 0.40740741, 0.15      ]])

print(np.array([[f"{i:.2%}" for i in val] for val in perc]))
# [['36.84%' '59.26%' '85.00%']
#  ['63.16%' '40.74%' '15.00%']]
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61888227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档