Python Numpy/Arrays函数

Python Numpy/Arrays函数,python,python-3.x,numpy,Python,Python 3.x,Numpy,编写一个函数calc_fraca,axis=0,它接受一个仅包含0和1的二维numpy数组,并返回一个数组,如果axis=0,则返回每列中1的分数;如果axis=1,则返回每行中1的分数 这就是我目前所拥有的 import numpy as np a = np.array([[1,0,1],[1,1,0],[0,1,0]]) b = np.zeros((3,1)) col_r1 = a[:,0:1] col_r2 = a[:,1:2] col_r3 = a[:,2:3] i=0 j=0 k=0

编写一个函数calc_fraca,axis=0,它接受一个仅包含0和1的二维numpy数组,并返回一个数组,如果axis=0,则返回每列中1的分数;如果axis=1,则返回每行中1的分数

这就是我目前所拥有的

import numpy as np
a = np.array([[1,0,1],[1,1,0],[0,1,0]])
b = np.zeros((3,1))
col_r1 = a[:,0:1]
col_r2 = a[:,1:2]
col_r3 = a[:,2:3]
i=0
j=0
k=0
for i in col_r1:
    if i >= 1:
        i = i+1
        b[0]= i/3

for k in col_r2:
    if k >= 1:
        k=k+1
        b[1] = k/3

for f in col_r3:
    if f >= 1:
        f=f+1
        b[2] = f/3
print(b)
print(col_r3)
以下是我遇到的问题:

如果在所有突变后打印b,则显示b[2]为0.6667,而不是0.333。 因为列应该只有数字1的一个副本

我不确定如何将此代码重写为问题中所示格式的函数

由于我不熟悉numpy,我想知道是否有一种方法可以编写一个代码,不使用for循环就可以完成相同的功能

提前谢谢

def calc_frac(a, axis=0):
    return a.mean(axis=axis)
关键是1和0数组的平均值是1的分数