Python:如何启用除零并返回零值?

时间:2016-02-25 02:03:34

标签: python division divide-by-zero

我有以下代码可以帮助我重塑文件中的每一行并执行简单的除法计算。除以零时,发生此错误。非常感谢任何帮助。

print(np.sum(single / divisi * binary, axis = -1))
RuntimeWarning: divide by zero encountered in divide

print(np.sum(single / divisi * binary, axis = -1))
RuntimeWarning: invalid value encountered in multiply

代码

import numpy as np
from numpy import genfromtxt
import csv

binary = np.genfromtxt('binary.csv', delimiter = ',').reshape((-1, 101, 4))
single = np.genfromtxt('single.csv', delimiter = ',').reshape((-1, 4))
divisi = np.genfromtxt('divisi.csv', delimiter = ',').reshape((-1, 1, 4))

print(np.sum(single / divisi * binary, axis = -1))

包含这4行或代码仍然无法解决。

try:
    print(np.sum(single / divisi * binary, axis = -1))
except Exception:
    print(0)  

3 个答案:

答案 0 :(得分:1)

只需将print放入try:except这样的内容:

import numpy as np
from numpy import genfromtxt
import csv

binary = np.genfromtxt('binary.csv', delimiter = ',').reshape((-1, 101, 4))
single = np.genfromtxt('single.csv', delimiter = ',').reshape((-1, 4))
divisi = np.genfromtxt('divisi.csv', delimiter = ',').reshape((-1, 1, 4))

try:
    print(np.sum(single / divisi * binary, axis = -1))
except Exception:
    print(0)  #or print whatever you want when you divide by zero

答案 1 :(得分:1)

这个怎么样:

if (divisi == 0):
    print (0)
else:
    print(np.sum(single / divisi * binary, axis = -1))

答案 2 :(得分:1)

我建议你阅读这个页面。 https://docs.python.org/2/tutorial/errors.html

据我所知,当出现零除错误时,建议使用下面的代码

try:
    print(np.sum(single / divisi * binary, axis = -1))
except ZeroDivisionError as e:
    print(0)