Я пытаюсь создать функцию, которая изменяет список массивов numpy и преобразует их в определенный тип данных. У меня возникают проблемы с изменением массива numpy.
Пример:
>> a = ['1', '2']
>> convert(int, a)
>> a
a = [1, 2]
Этот код работает, когда функция представляет собой обычный массив, поскольку d [:] ссылается на массив, а не на копия.
# data - data to be converted
# func - type of data
def convert(func, *data):
for d in data:
d[:] = list(map(func, d))
Этот код по какой-то причине не работает, и я озадачен, почему и как я могу это исправить.
def convert(func, *data):
for d in data:
d[:] = d.astype(func)
В качестве альтернативы:
def convert(func, *data):
for i in range(len(data)):
data[i][:] = np.array( np.zeros(len(data[i]))) # works -> sets array outside function to 0s
data[i][...] = data[i].astype(func) # doesn't work
Как можно сделать это в numpy?