Python之Numpy(二)

本文详细介绍了Python Numpy库中广播机制的概念,以及数组与标量运算、ndarray的索引和切片、花式索引和布尔型索引的使用。通过实例演示了数组加法、标量相加相乘、二维数组的创建、切片访问和索引访问,以及数组转置和reshape、transpose、swapaxes等函数的应用。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值