import numpy as np
import sympy as sym
from numpy import sin
from sympy import symbols, diff
func = lambda x: sin(x)
x = symbols('x')
print diff(func(x),x)
วิธีนี้ได้ผลหากฉันแทนที่ฟังก์ชันด้วยพหุนาม หรือหากฉันวางฟังก์ชันตรีโกณมิติลงในตัวดำเนินการ diff โดยตรง แต่ในรูปแบบนี้ฉันได้รับ AttributeError: sin
โดยพื้นฐานแล้วฉันคิดว่า python ไม่สามารถจดจำ func ได้ว่าเป็นเพียงแค่ฟังก์ชันตรีโกณมิติซึ่งมันรู้วิธีบูรณาการเชิงสัญลักษณ์ ฉันแค่มีบาปนำเข้าแบบ Sympy แล้วสิ่งต่าง ๆ ก็จะได้ผล แต่แล้วฉันก็ติดอยู่กับ func ที่อ้างอิงถึงบาปในเนมสเปซ Sympy และยังมีสิ่งต่าง ๆ ในอนาคตที่ฉันต้องการทำกับ func ซึ่งต้องการให้ถูกกำหนดโดยใช้ sin ในเนมสเปซแบบ numpy .
np.sin
จะไม่ยอมรับsympy.core.symbol.Symbol
และฉันสงสัยว่ามีวิธีที่สมเหตุสมผลในการทำเช่นนั้น ทำไมคุณถึงพยายามทำเช่นนี้? - person M4rtini   schedule 17.02.2014