Как именно реализован dict, который имеет линейный поиск по времени для коллизий? Я бы предположил, что он реализован в виде хеш-таблицы, поддерживаемой списком. Я бы предположил, что лучшая реализация была бы O (log (n)) для различных операций, используя вместо этого дерево для поддержки таблицы. Есть ли какая-то магия за кулисами, чтобы как можно дольше поддерживать постоянные поисковые запросы?
Мой источник, кстати, таков: def swap_columns (my_array, col1, col2): temp = my_array [:, col1] my_array [:, col1] = my_array [:, col2] my_array [:, col2] = temp Затем swap_columns (data, 0, 1) Нет ' т ...
from numpy import *
def swap_columns(my_array, col1, col2):
temp = my_array[:,col1]
my_array[:,col1] = my_array[:,col2]
my_array[:,col2] = temp
Тогда
swap_columns(data, 0, 1)
Не работает. Однако прямой вызов кода
temp = my_array[:,0]
my_array[:,0] = my_array[:,1]
my_array[:,1] = temp
делает. Почему это происходит и как это исправить? Ошибка говорит: «IndexError: массивы 0-d могут использовать только один () или список новых осей (и один ...) в качестве индекса», что означает, что аргументы не являются целыми числами? Я уже пытался преобразовать столбцы в int, но это не помогло.