Мне интересно, есть ли какие-либо недостатки в использовании b = np.array(a) вместо b = np.copy(a) для копирования массива NumPy a в b. Когда я %timeit, первое может быть на 100 % быстрее.
В обоих случаях b равно a равно False, и я могу манипулировать b, оставляя a нетронутым, поэтому я полагаю, что это делает то, что ожидается от .copy().
Я что-то упускаю? Что неправильного в использовании np.array для копирования массива?
С Python 3.6.5, NumPy 1.14.2, хотя разница в скорости быстро сокращается для больших размеров:
a = np.arange(1000)
%timeit np.array(a)
501 ns ± 30.1 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
%timeit np.copy(a)
1.1 µs ± 35.7 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)