首页 > 解决方案 > 使用 Python 进行数组乘法的 For/if 循环

问题描述

我正在尝试将 for 循环用于使用 numpy 的二进制分类函数。我遇到的问题是循环需要继续,直到 Y 中的所有值在乘以更新后的值 ak 时都大于 0。

但是,此循环返回的 ak 值确实确保 Y 的所有值都大于 0。例如,当前输出 [0,0,7] 乘以 Y1 中的第四个数组 [-1, -1,0],等于 0。

我能做些什么来解决这个问题?我在下面发布了我的代码。提前致谢。

import numpy as np


def percep(a1, epochs, Y):
    sum = Y1.sum(axis=0)
    print(sum)
    ak=a1
    for k in range(1, epochs):
        if np.multiply(ak, Y).all() > 0:
            return(ak)
        else:
            rho = np.multiply(1/k, sum)
            ak = np.add(ak, rho) 
            return(ak)


a1 = np.array([0,0,0])
Y1 = np.array([ [1,1,1], [1,1,2], [1,2,2], [-1,-1,0], [-1, -1, 1], [-1, -2, 1]])

标签: pythonarraysnumpy

解决方案


推荐阅读