In [23]: values = np.arange(4)
Если я сгенерирую новый набор значений, я могу просто присвоить его переменной:
In [24]: arr = np.sqrt(values)
In [25]: arr
Out[25]: array([0. , 1. , 1.41421356, 1.73205081])
Я мог бы присвоить новые значения массиву, но почему?
In [26]: arr[:] = [100,200,300,400]
In [27]: arr
Out[27]: array([100., 200., 300., 400.])
concatenate
Позвольте мне объединить несколько массивов - фактически их полный список:
In [28]: np.concatenate([arr,arr])
Out[28]: array([100., 200., 300., 400., 100., 200., 300., 400.])
Нет необходимости имитировать добавление в список с плохо названным np.append
. Если я должен использовать итерацию (с функцией, которая работает только со скалярами), лучше добавить список:
In [29]: alist = []
In [30]: for v in values:
...: alist.append(v**.5)
...: alist
Out[30]: [0.0, 1.0, 1.4142135623730951, 1.7320508075688772]
In [31]: np.array(alist)
Out[31]: array([0. , 1. , 1.41421356, 1.73205081])
In [32]: np.array([v**.5 for v in values])
Out[32]: array([0. , 1. , 1.41421356, 1.73205081])