यहाँ मेरा पहला कोड है, numpy.linspace विधि का उपयोग करके:

import numpy as np
import matplotlib.pyplot as plt


def graph(formula, string, x1, x2):
    x = np.linspace(x1, x2)
    y = formula(string, x)
    plt.plot(x, y)


def my_formula(string, x):
    return eval(string)


graph(my_formula, "2 * (x ** 3) - 9.5 * (x ** 2) + 10.5 * x", 0, 3)
plt.tight_layout()
plt.show()

यह ठीक काम करता है, हालांकि, अगर मैं ऐसा करता हूं, तो numpy आयात करने के बजाय:

import matplotlib.pyplot as plt


class Module:
    @staticmethod
    def linspace(finish, slices, start=0):
        each = float((finish - start) / (slices - 1))
        res = list()
        for i in range(slices):
            res.append(start + i * each)
        return res


def graph(formula, string, x1, x2):
    x = Module.linspace(x2, 50, start=x1)
    y = formula(string, x)
    plt.plot(x, y)


def my_formula(string, x):
    return eval(string)


graph(my_formula, "2 * (x ** 3) - 9.5 * (x ** 2) + 10.5 * x", 0, 3)
plt.tight_layout()
plt.show()

यहाँ एक त्रुटि दिखाई देती है:

Traceback (most recent call last):
File "C:/Users/QINY/PycharmProjects/begin/covid/seven.py", line 24, in <module> graph(my_formula, "2 * (x ** 3) - 9.5 * (x ** 2) + 10.5 * x", 0, 3)
File "C:/Users/QINY/PycharmProjects/begin/covid/seven.py", line 16, in graph y = formula(string, x) File "C:/Users/QINY/PycharmProjects/begin/covid/seven.py", line 21, in my_formula return eval(string)
File "<string>", line 1, in <module> TypeError: unsupported operand type(s) for ** or pow(): 'list' and 'int'

क्या कोई यह बता सकता है कि सूची को स्वचालित रूप से पुनरावृत्त करने के लिए यह numpy.adarray में कैसे किया जाता है?

0
Weilory 1 अप्रैल 2020, 12:20

1 उत्तर

सबसे बढ़िया उत्तर

वे फ़ंक्शन के रूप में मानक ऑपरेटरों का उपयोग करते हैं।

उनका प्रकार __pow__, __mul__, __add__, आदि जैसे कार्यों का समर्थन करता है ... कार्यान्वयन के साथ जो ndarray के प्रत्येक तत्व पर संचालन लागू करते हैं (बहुत कुशलता से ...)

आप अपना खुद का प्रकार बना सकते हैं जो list से विरासत में मिला है और क्या यह इन सदस्य कार्यों को लागू करता है, सूची को स्वयं दोहराता है, इसे प्रत्येक तत्व पर लागू करता है।

2
Adam.Er8 1 अप्रैल 2020, 09:30