numpy基础用法-学习笔记-task02

1.数组的属性
1)numpy.ndarray.ndim 用于返回数组的维数(轴的个数)也称为秩,一维数组的秩为 1,二维数组的秩为 2,以此类推。
2) numpy.ndarray.shape 表示数组的维度,返回一个元组,这个元组的长度就是维度的数目,即 ndim 属性(秩)。
3) numpy.ndarray.size 数组中所有元素的总量,相当于数组的 shape 中所有元素的乘积,例如矩阵的元素总量为行与列的乘积。
4) numpy.ndarray.dtype ndarray 对象的元素类型。
5) numpy.ndarray.itemsize 以字节的形式返回数组中每一个元素的大小。
numpy基础用法-学习笔记-task02
2.在 ndarray 中所有元素必须是同一类型,否则会自动向下转换, int->float->str
numpy基础用法-学习笔记-task02

3.副本与视图
在 Numpy 中,尤其是在做数组运算或数组操作时,返回结果不是数组的 副本 就是 视图。
在 Numpy 中,所有赋值运算不会为数组和数组中的任何元素创建副本。
1)numpy.ndarray.copy() 函数创建一个副本。 对副本数据进行修改,不会影响到原始数据,它们物理内存不在同一位置。
numpy基础用法-学习笔记-task02
4.数组切片操作返回的对象只是原数组的视图。
numpy基础用法-学习笔记-task02

5.索引与切片
数组索引机制指的是用方括号([])加序号的形式引用单个数组元素,它的用处很多,比如抽取元素,选取数组的几个元素,甚至为其赋一个新值。
1)整数索引
【例】要获取数组的单个元素,指定元素的索引即可。
numpy基础用法-学习笔记-task02
2)切片索引
切片操作是指抽取数组的一部分元素生成新数组。对 python 列表进行切片操作得到的数组是原数组的副本,而对 Numpy 数据进行切片操作得到的数组则是指向相同缓冲区的视图
如果想抽取(或查看)数组的一部分,必须使用切片语法,也就是,把几个用冒号**( start:stop:step )**隔开的数字置于方括号内。
为了更好地理解切片语法,还应该了解不明确指明起始和结束位置的情况。
如省去第一个数字,numpy 会认为第一个数字是0;如省去第二个数字,numpy 则会认为第二个数字是数组的最大索引值;如省去最后一个数字,它将会被理解为1,也就是抽取所有元素而不再考虑间隔。
一维数组切片:
numpy基础用法-学习笔记-task02
二维数组切片:
通过对每个以逗号分隔的维度执行单独的切片,你可以对多维数组进行切片。因此,对于二维数组,我们的第一片定义了行的切片,第二片定义了列的切片。
numpy基础用法-学习笔记-task02
numpy基础用法-学习笔记-task02
3)dots 索引
NumPy 允许使用 … 表示足够多的冒号来构建完整的索引列表。
比如,如果 x 是 5 维数组:
x[1,2,…] 等于 x[1,2,:,:,:]
x[…,3] 等于 x[:,:,:,:,3]
x[4,…,5,:] 等于 x[4,:,:,5,:]
numpy基础用法-学习笔记-task02

4) 整数 数组索引
【例】方括号内传入多个索引值,可以同时选择多个元素。
numpy基础用法-学习笔记-task02
numpy基础用法-学习笔记-task02
【例】可以借助切片 : 与整数数组组合。
numpy基础用法-学习笔记-task02

6)numpy. take(a, indices, axis=None, out=None, mode=‘raise’)
作用:从数组中沿轴获取元素
numpy基础用法-学习笔记-task02
7)布尔索引
我们可以通过一个布尔数组来索引目标数组。
numpy基础用法-学习笔记-task02
我们利用这些条件来选择图上的不同点。蓝色点(在图中还包括绿点,但绿点掩盖了蓝色点),显示值 大于0 的所有点。绿色点表示值 大于0
且 小于0.5π 的所有点
numpy基础用法-学习笔记-task02
numpy基础用法-学习笔记-task02
6.数组的迭代
除了for循环,Numpy 还提供另外一种更为优雅的遍历方法。
apply_along_axis(func1d, axis, arr)
Apply a function to 1-D slices along the given axis.
numpy基础用法-学习笔记-task02