我正在尝试使用numpy绘制一些复杂的函数。一些工作代码示例:
/home/ubuntu/delete_slack/delete_slack.sh: 3: /home/ubuntu/delete_slack/delete_slack.sh: slack-cleaner: not found
但是,假设我希望函数f在其中进行简单比较,如下所示:
import numpy as np
from PIL import Image
size = 1000
w = np.linspace(-10, 10, size)
x, y = np.meshgrid(w, w)
r = x + 1j*y
def f(q):
return np.angle(q)
z = f(r)
normalized = ((255/(np.amax(z) - np.amin(z)))*(z+abs(np.amin(z)))).astype(int)
data = [i for j in normalized for i in j]
img = Image.new('L', (size, size))
img.putdata(data[::-1]) #pixels are done bottom to top
img.show()
我收到错误
def f(q):
if np.abs(q) < 4:
return 1
else:
return 0
对于np.abs(q)&lt; 4检查。
我做了一些挖掘并意识到这是因为Python正在对整个r数组进行操作,并且无法将数组与整数进行比较。所以,我试图寻找进行元素比较的方法。
This page看起来很有希望:它说我可以通过使用np.less(a,b)进行元素比较,所以我试过
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
并得到了相同的ValueError。似乎np.less()的两个参数都需要是相同大小的数组。
我想要的是将我的数组的每个元素与单个非数组数量进行比较。我想我可以制作一个相同大小的虚拟数组,其中填充相同的4个,但是做一个更优雅的方式。
答案 0 :(得分:0)