преобразование none (массивы размером 1) в скаляры

#python #numpy #matplotlib

#python #numpy #matplotlib

Вопрос:

Я работаю над функциями и практикую это с помощью некоторых кодов (есть смещение, потому что я работаю над нейронными сетями), и когда я выполнял функцию квадратного корня, я получил ошибку:

 TypeError: only size-1 arrays can be converted to Python scalars
 

Вот код, который вызвал это.

 import matplotlib.pyplot as plt
import numpy as np
import math


def somefunc(m,bias):
    y = round(math.sqrt(m))  bias
    return y


y = np.linspace(1, 100, 100)
z = somefunc(y,0)
plt.plot(y, z)
plt.xlabel("y")
plt.ylabel("func(y)")
plt.show()
 

Ответ №1:

Вы должны использовать методы numpy для работы с несколькими массивами :

np.sqrt вместо math.sqrt

np.round вместо round

 import matplotlib.pyplot as plt
import numpy as np
import math


def somefunc(m,bias):
    y = np.round(np.sqrt(m))  bias
    return y


y = np.linspace(1, 100, 100)
z = somefunc(y,0)
plt.plot(y, z)
plt.xlabel("y")
plt.ylabel("func(y)")
plt.show()
 

Комментарии:

1. Ну, это работает, но должен ли я использовать round, без round это кажется намного более актуальным для этого здесь analyzemath.com/function/graph-of-square-root-function.gif но, спасибо, это работает: D