Итак, это немного тонкая точка, потому что, хотя Python передает только переменные по значению, каждая переменная в Python является ссылкой. Если вы хотите изменить свои значения с помощью вызова функции, вам нужен измененный объект. Например:
l = [0]
def set_3(x):
x[0] = 3
set_3(l)
print(l[0])
В приведенном выше коде функция изменяет содержимое объекта List (который является изменяемым), и поэтому выход равен 3 вместо 0.
Я пишу этот ответ только для иллюстрации того, что означает «по значению» в Python. Вышеупомянутый код плохой стиль, и если вы действительно хотите изменить свои значения, вы должны написать класс и методы вызова в этом классе, как предлагает MPX.
Пробовали ли вы использовать dtype=int
?
y=np.empty((7000,1), dtype=int)
...
targets=np.zeros(([7000,1,10]), dtype=int)
. Вы можете проверить больше документации по использованию numpty.empty и numpty.zeros .