3. 打印数组
当您打印一个数组时,NumPy 会以类似于嵌套列表的方式对其进行显示,但会采用以下布局方式:
- 最后一轴是从左往右打印;
- 倒数第二轴是从上到下打印;
- 余下的也是从上到下打印,每个切片和下一个切片之间用一个空行分割。
一维数组打印成行数组,二维数组打印成矩阵,三维数组打印成矩阵的列表。
如果数组太大无法完全打印出来,Numpy会自动跳过数组的中间部分,只打印数组的四角。如果非要打印整个数组,可以通过set_printoptions设置打印选项。
4. 基本操作
4.1 数组上的算术运算符是按元素进行操作的。
4.2 乘法运算符
*在Numpy数组中也是按元素进行操作。要想实现矩阵相乘,可以使用@运算符或者dot函数
4.3 一些操作符例如
+=和*=,会修改原数组而不是创建一个新数组
4.4 当对不同类型的数组进行操作时,所得到的数组类型会与更通用或更精确的那种类型相对应(这种行为被称为向上转型)
4.5 许多一元运算(例如计算数组中所有元素的总和)都
ndarray类的方法中实现了
默认情况下,这些操作会将数组当作一系列数字来处理,而不考虑其形状。不过,通过指定轴参数,就可以沿着数组的指定轴来进行某个操作。
5. 通用函数
Numpy提供常见的数学函数如sin,cos和exp等,它们被称为通用函数。这些函数也是操作在元素上,输出一个数组。
6. 索引,切片和迭代
6.1 一维数组可以被索引,切片和迭代,就像列表和其他Python序列一样
6.2 多维数组每个轴都有一个索引,这些索引以逗号分隔的形式给出在一个元组中。
对于多维数组,逗号前面表示行切片,逗号后面表示列切片。
当提供的索引数量少于轴的数量时,缺失的索引会被视为完整的切片。
表达式b[i]表示i后面跟着需要出现的尽可能多的冒号:,以表示剩余的轴。Numpy还允许你使用点来表示这一点b[i, ...]
点(...)表示生成一个完整的索引元组需要的冒号,具体数量视情况而定。例如:x是有5个轴的数组,那么:
x[1, 2, ...]相当于x[1, 2, :, :, :]x[..., 3]相当于x[:, :, :, :, 3]x[4, ..., 5, :]相当于x[4, :, :, 5, :]
对多维数组进行迭代是基于第一轴进行的。
然而,如果想要对数组中的每个元素执行某种操作,可以使用 flat 属性,它是一个遍历数组所有元素的迭代器。