Python之Numpy(二)
环境:jupyter Notebook(Anaconda)
文章目录
一、数组广播
数组在进行矢量化运算时,要求数组的形状是相等的。当形状不相等的数组执行算术运算的时候,就会出现广播机制,该机制会对数组进行扩展,使数组的shape属性值一样,这样就可以进行矢量化运算。
广播机制实现了对两个或两个以上数组的运算,即使这些数组的shape不是完全相同的,只需要满足如下任意一个条件即可。
(1)数组的某一维度等长
(2)其中一个数组的某一维度为1
1. 创建arr1
arr1=np.array([[0],[1],[2],[3]]) ##数组的维度,表示n行n列
arr1.shape
2.创建arr2
# In[50]:
arr2=np.array([1,2,3]) ##数组的维度,表示n行n列
arr2.shape
3.数组加法运算
# In[51]:
arr1+arr2 #数组加法运算
二、数组与标量之间的运算
1. 与标量相加
import numpy as np
data1=np.array([[1,2,3],[4,5,6]])
data2=10
data1+data2 #与标量相加
2. 与标量相乘
data1*data2 #与标量相乘
三、ndarray的索引和切片
ndarray对象支持索引和切片操作,且提供了比常规Python序列更多的索引功能,还可以整数数组和布尔数组进行索引。
1. 创建数组
import numpy as np
arr=np.arange(8)
arr
2.通过索引访问
arr[5] #通过索引访问
3.通过切片访问
[3:5] #切片访问
arr[1:6:2] #切片访问
4.创建arr2d
arr2d=np.array([[1,2,3],[4,5,6],[7,8,9]])
arr2d
arr2d[1] #索引访问
arr2d[0,1] #切片访问
arr2d[:2] #切片访问
arr2d[0:2,0:2] #切片访问
四、花式(数组)索引的基本使用
花式索引是Numpy的一个术语,是指整数数组或列表作为索引,然后根据索引数组或索引列表的每一元素作为目标数组的下表再进行取值。
当使用一数组或列表作为索引时,如果使用索引要操作的目标对象是一维数组,则获取结果是对应下标元素,如果要操作的对象的目标对象是一个一维数组,则获取的结果就是对应下标的一行数组
这里好像有点绕,了解为主
1. 创建二维数组
demo_arr=np.empty((4,4)) #创建一个4行4列的二维数组
for i in range(4):
demo_arr[i]=np.arange(i,i+4)
demo_arr
2. 通过切片访问
demo_arr[[0,2]]
3. 通过索引访问
demo_arr[[1,3],[1,2]]
五、布尔型索引的使用
1.创建student_name
student_name=np.array(['Tom','Lily','Jack','Rose'])
student_name
2.创建student_score
student_score=np.array([[79,88,80],[89,90,92],[83,78,85],[78,76,80]])
student_score
3. 数组的转置和轴的对称
arr=np.arange(12).reshape(3,4) #创建数组
arr
4. 数组的转置
arr.T #数组的转置
5. reshape函数
依次生成n个自然数,并且以a行b列的数组形式显示
arr=np.arange(16).reshape((2,2,4))
arr
6.transpose函数
transpose方法的作用是交换矩阵的两个维度(将两个矩阵转置)
arr.transpose(1,2,0) #transpose方法的作用是交换矩阵的两个维度(将两个矩阵转置)
7.swapaxes函数
swapaxes的用法就是交换轴的位置
arr.swapaxes(1,0) #swapaxes的用法就是交换轴的位置
客官们,看完记得一键三联~
这是写文的动力
Numpy的其他文章
链接:https://blog.csdn.net/weixin_46555054/article/details/124212495