次のコードを検討してください。
import numpy as np
def f(x, y):
return (x[:, np.newaxis] - y[:]).sum(axis = 1)
x1 = np.linspace(1, 2, 5)
y1 = np.linspace(3, 4, 7)
print(f(x1, y1))
# x2 = 2. # (won't work)
# x2 = [2.] # (won't work either)
x2 = np.asarray([2.])
print(f(x2, y1))
# x3, _ = np.meshgrid(x1, x1) # won't work
# print(f(x3, y1))
最初の呼び出しf(x1, y1)
は期待どおりに機能します。
2 番目の呼び出しでは、float が機能する前に「変換」する必要があります (変換をユーザーに対して透過的にしたいので、関数の定義に変換を含める必要があります)。
3 番目の呼び出しはまったく機能せず、最初の呼び出しと同じように関数の定義を調整する方法がわかりませんが、グリッド上のいくつかのポイントに対してです。
何か案は?ありがとう。