[英]AttributeError: 'numpy.ndarray' object has no attribute 'A'
[英]Numpy and Matplotlib - AttributeError: 'numpy.ndarray' object has no attribute 'replace'
我正在尝试使用数据列的日志值在python
使用matplotlib
生成图,但我一直遇到此错误,
追溯(最近一次通话):
在第158行中输入文件“ /home/PycharmProjects/proj1/test.py”graph(file_path)
图中的文件“ /home/PycharmProjects/proj1/test.py”,第90行
y = np.array(np.log2(y1).replace(-np.inf, 0))
AttributeError:'numpy.ndarray'对象没有属性'replace'
下面是代码,
def graph(file_path):
dataset1 = pandas.read_csv(file_path)
data1 = dataset1.iloc[:, 5]
x, y1 = get_pdf(data1)
y = np.array(np.log2(y1).replace(-np.inf, 0))
plt.figure()
plt.plot(x, y, color= 'g', label = 'Test')
plt.legend()
output_image = "fig1.png"
plt.savefig(output_image)
plt.close()
plt.figure()
我非常感谢您提供一些帮助来解决此问题。 谢谢。
随着log2
一0
产生警告和-inf:
In [537]: x = np.arange(5.)
In [538]: np.log2(x)
/usr/local/bin/ipython3:1: RuntimeWarning: divide by zero encountered in log2
#!/usr/bin/python3
Out[538]: array([ -inf, 0. , 1. , 1.5849625, 2. ])
但是log2
是一个ufunc,并带有where
和out
参数,可用于绕过此警告:
In [539]: out = np.zeros_like(x)
In [540]: np.log2(x, out=out, where=x>0)
Out[540]: array([0. , 0. , 1. , 1.5849625, 2. ])
In [541]: out
Out[541]: array([0. , 0. , 1. , 1.5849625, 2. ])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.