-2

私は python-3.x を使用しており、この cod を実行しようとしていますが、次のエラーが発生しました。

Z = np.fromiter(map(schwefel, zip(X.flat,Y.flat)), dtype=np.float16, 
count=X.shape[0]*X.shape[1]).reshape(X.shape)

ValueError: setting an array element with a sequence.

問題は私が解決できなかった float dtype のすべてであることに感謝します。提案やアドバイスをいただければ幸いです。

import random
from math import sin, cos, pi, exp, e, sqrt
from operator import mul
from functools import reduce
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt

try:
    import numpy as np
except:
    exit()

def schwefel(individual):
    N = len(individual)

    return 418.9828872724339*N-sum(x*sin(sqrt(abs(x))) for x in individual),

fig = plt.figure()
# ax = Axes3D(fig, azim = -29, elev = 50)
ax = Axes3D(fig)
X = np.arange(-500, 500, 10)
Y = np.arange(-500, 500, 10)
X, Y = np.meshgrid(X, Y)

Z = np.fromiter(map(schwefel, zip(X.flat,Y.flat)), dtype=np.float16, count=X.shape[0]*X.shape[1]).reshape(X.shape)

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet, linewidth=0.2)

plt.xlabel("x")
plt.ylabel("y")
plt.show()
4

1 に答える 1