numpy power ValueError: Integers to negative integer powers are not allowed.

本文介绍了一个关于 numpy.power 函数使用的常见错误实例:尝试计算 numpy.power(1, -1) 导致的问题,并提供了解决方案 —— 确保输入参数为浮点数类型。
# numpy.power(x1,x2)
numpy.power(1,-1)

这样做是不允许的,只需把x1 = float(x1)就行

在Python中,当对整数进行负整数次幂运算时,会出现 “Integers to negative integer powers are not allowed” 错误。这是因为整数的负整数次幂可能会得到非整数结果(如分数),而Python不允许直接对整数进行这样的操作。以下是一些解决方案: ### 使用浮点数进行幂运算 将整数转换为浮点数后再进行幂运算。例如在使用`np.arange`生成数组时,避免直接对整数进行负整数次幂操作: ```python import numpy as np from sklearn.linear_model import LogisticRegression for c in np.arange(-5, 5): # 将10转换为浮点数进行幂运算 lr = LogisticRegression(C=float(10**c), random_state=0) ``` ### 在Numpy中使用`np.power`时的处理 在使用`np.power`进行幂运算时,确保输入是浮点数。以下是对引用中代码的修改: ```python import numpy as np import scipy.sparse as sp def normalize(mx): """Row-normalize sparse matrix""" rowsum = np.array(mx.sum(1), dtype=float) # 将结果转换为浮点数 r_inv = np.power(rowsum, -1).flatten() r_inv[np.isinf(r_inv)] = 0. r_mat_inv = sp.diags(r_inv) mx = r_mat_inv.dot(mx) return mx mx = np.array([[1, 0, 1], [1, 1, 1], [0, 0, 1]]) mx_normal = normalize(mx) print(mx_normal) ``` ### 手动处理幂运算 可以手动编写幂运算逻辑,在运算过程中使用浮点数。例如: ```python def custom_power(base, exponent): if exponent < 0: return 1. / (base ** abs(exponent)) return base ** exponent # 使用示例 result = custom_power(10, -2) print(result) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值