python - 如何在numpy数组中随机选取一个元素?

标签 python python-3.x numpy numpy-ndarray

enter image description here我正在编写脚本来实现感知器学习算法。但是,我无法在 numpy 数组中随机选取一个元素。而且我不知道 numpy 中是否有内置函数可以做到这一点。

def error_rate(w1, w2):
    W = error(w1, w2)
    return((W.sum())/W.size)
def error(w1, w2):
    W = w1!= w2
    #print(W)
    return W

#test of the function 'error rate'
a = np.array([0,0,0,0,1])
b = np.array([0,1,0,0,1])
print (error_rate(a, b))
print(np.random.choice(np.nonzero(error(a, b)), 1))

在上面的代码中,我实际上想检查a中的数字是否与b中具有相同索引的数字相同。并从满足a[k]!=b[k]的索引k中随机选取。但它不起作用。

最佳答案

这里的问题是 np.nonzero 返回一个元组,其中您只需要第一个元素;在这里,

np.random.choice(np.nonzero(a != b)[0])

可以完成这项工作。您可以使用 np.flatnonzero 来避免选择它。反而;也就是说,上面相当于

np.random.choice(np.flatnonzero(a != b))

关于python - 如何在numpy数组中随机选取一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49474782/

相关文章:

Python方式从文件中导出数字证书信息

Python设置不存在的数组的值默认为0

Python:导入子包有意义吗?

python - 使用 Python 运行的查询不在 MySQL 中执行 unixtime 函数

python - 当您只需运行 setup.py 文件时,为什么要使用 Pip 或 PyPI

python - 翻转和旋转 numpy 数组以绘制等高线图

python - numba.jit 似乎对性能没有影响的情况

python - Django 错误 : AttributeError at 'Manager' object has no attribute 'create_user'

python - 在 Python 中实现多处理进程的超时

python - 如果用户输入字符串,则会出现错误