非常重要
# 每一个坐标轴 axis 都有一个编号
# 从外层到内层编号, 0, 1, 2 axis=0 axis = 1 axis=2
# 从内层到外层进行编号 -1, -2, -3 axis = -1, axis = -2 , axis = -3
# axis = 0 , axis = -3 是一个轴
# axis = 1, axis=-2 是一个轴
# axis = 2 axis = -1 是一个轴
关于数组切片有一点很重要也非常有用,那就是数组切片返回的是 数组数据的视图,而不是数值数据的副本。
这一点也是 NumPy 数 组切片和 Python 列表切片的不同之处:在 Python 列表中,切片是 值的副本。
如果不想修改原数组的内容,可以通过.copy()方法创建一个副本
同一个: 形状和数据都是相同的
视图(浅复制): 形状独立, 数据共享
副本(深复制): 形状独立, 数据独立, 没有任何关系了
技巧:在使用 reshape 时,可以将其中的一个维度指定为 -1,Numpy 会自动计算出它的真实值
无论是ravel、reshape、T,它们都不会更改原有的数组形状,都是返回一个新的数组。
也就是我们之前学过的浅复制
Numpy就是通过广播来进行高速的矢量化运算.
广播, 具有扩散的特点.在数组中的广播,含义就是一个数组在另外一个数组中进行的某种运算的扩散.
广播机制:Numpy 可以转换这些形状不同的数组,使它们都具有相同的大小,然后再对它们进行运算
需要注意的是,乘法运算符*的运算在NumPy数组中也是元素级别的(这与许多矩阵语言不同)。如果想要执行矩阵乘积,可以使用dot函数:
A*B # 元素乘积(elementwise product)
A.dot(B) # 矩阵相乘(matrix product)
np.dot(A, B) # 矩阵相乘的另一种方式(another matrix product)
作业
1.将列表放入Numpy数组
data=[2,3,4,5]
2.创建二维数组
data=[[1,2,3],[7,8,9]]
3.输出 arr 的数据类型
想用python的mark功能更改字号大小,但是输入###以后并没有变成标题大字,而是前面多了###,直接显示出来了,如图想问怎么才能在python里面使用MARK功能的时候更改字体大小