Numpy库-2

44 阅读3分钟
3. 打印数组

当您打印一个数组时,NumPy 会以类似于嵌套列表的方式对其进行显示,但会采用以下布局方式:

  • 最后一轴是从左往右打印;
  • 倒数第二轴是从上到下打印;
  • 余下的也是从上到下打印,每个切片和下一个切片之间用一个空行分割。
一维数组打印成行数组,二维数组打印成矩阵,三维数组打印成矩阵的列表。
如果数组太大无法完全打印出来,Numpy会自动跳过数组的中间部分,只打印数组的四角。如果非要打印整个数组,可以通过set_printoptions设置打印选项。

image.png

4. 基本操作

4.1 数组上的算术运算符是按元素进行操作的。

image.png 4.2 乘法运算符*在Numpy数组中也是按元素进行操作。要想实现矩阵相乘,可以使用@运算符或者dot函数

image.png 4.3 一些操作符例如+=*=,会修改原数组而不是创建一个新数组

image.png 4.4 当对不同类型的数组进行操作时,所得到的数组类型会与更通用或更精确的那种类型相对应(这种行为被称为向上转型) image.png 4.5 许多一元运算(例如计算数组中所有元素的总和)都ndarray类的方法中实现了

image.png 默认情况下,这些操作会将数组当作一系列数字来处理,而不考虑其形状。不过,通过指定轴参数,就可以沿着数组的指定轴来进行某个操作。 image.png

5. 通用函数

Numpy提供常见的数学函数如sincosexp等,它们被称为通用函数。这些函数也是操作在元素上,输出一个数组。 image.png

6. 索引,切片和迭代

6.1 一维数组可以被索引,切片和迭代,就像列表和其他Python序列一样 image.png 6.2 多维数组每个轴都有一个索引,这些索引以逗号分隔的形式给出在一个元组中。 image.png 对于多维数组,逗号前面表示行切片,逗号后面表示列切片。

当提供的索引数量少于轴的数量时,缺失的索引会被视为完整的切片。 image.png

表达式b[i]表示i后面跟着需要出现的尽可能多的冒号:,以表示剩余的轴。Numpy还允许你使用点来表示这一点b[i, ...]

点(...)表示生成一个完整的索引元组需要的冒号,具体数量视情况而定。例如:x是有5个轴的数组,那么:

  • x[1, 2, ...] 相当于 x[1, 2, :, :, :]
  • x[..., 3] 相当于 x[:, :, :, :, 3]
  • x[4, ..., 5, :] 相当于 x[4, :, :, 5, :]

image.png

对多维数组进行迭代是基于第一轴进行的。

image.png

然而,如果想要对数组中的每个元素执行某种操作,可以使用 flat 属性,它是一个遍历数组所有元素的迭代器。

image.png