副本与视图
在 Numpy 中,尤其是在做数组运算或数组操作时,返回结果不是数组的 副本 就是 视图。
在 Numpy 中,所有赋值运算不会为数组和数组中的任何元素创建副本。
numpy.ndarray.copy() 函数创建一个副本。 对副本数据进行修改,不会影响到原始数据,它们物理内存不在同一位置。
索引与切片
切片索引
对 python 列表进行切片操作得到的数组是原数组的副本,而对 Numpy 数据进行切片操作得到的数组则是指向相同缓冲区的视图。
切片索引是用切片语法,是用[start: stop: step]进行索引的方式 注意区分对列表和numpy数据进行切片的区别
dots索引
Numpy允许使用…表示足够多的冒号构成索引
整数数组索引
方括号内传入 多个整数构成的列表或者numpy array进行索引 也可以用切片与整数数组组合的方式进行索引
应注意:使用切片索引到numpy数组时,生成的数组视图将始终是原始数组的子数组, 但是整数数组索引,不是其子数组,是形成新的数组。
布尔索引
可以传入布尔值组成的数组进行索引
数组迭代
Numpy提供了除for循环之外更优雅的遍历方式
apply_along_axis(func1d, axis, arr) Apply a function to 1-D slices along the given axis.