数模美赛准备——Numpy

数模美赛准备——Numpy

C题多用到Python进行数据处理,因此在赛前准备相关知识

1. 安装Numpy

  1. win+R,输入cmd。
  2. 输入pip install numpy。

在这里插入图片描述

如图所示,完成安装。

2. 创建数组

再完成创建数组前,首先应该导入Numpy模块

import numpy as np

创建一维数组

a = np.array([1,2,3,4])

在这里插入图片描述

创建二维数组

a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])

在这里插入图片描述

dtype属性

a.dtype

在这里插入图片描述

shape属性

a.shape

在这里插入图片描述
利用shape改变数组的行和列
例如上面的a是三行四列的二维数组
输入

a.shape = 4,3

在这里插入图片描述
此时查看这个数组
在这里插入图片描述
它变成了一个四行三列的数组,需要注意的是这一操作并非并非转置,只是安装顺序调整数组的行和列。

当修改shape属性时,将最后一个参数改为-1,则会根据前几个参数自动算出最后一个参数:
例如:

a.shape = 2 ,-1

在这里插入图片描述
根据元素个数,计算出总共需要6列。

reshape函数

与直接修改数组的shape属性不同的是,reshape函数在原数组的基础上创建新的数组而非直接对原数组进行修改
输入:

b = a.reshape(3,4)

查看数组b
在这里插入图片描述

通过数组索引,修改数组元素

输入:

b[1] = 2021

将数组b的第二行所有元素修改为2021
在这里插入图片描述

创建数组时修改元素类型

a = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9,
10]], dtype=np.float)
a = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9,
10]], dtype=np.complex)

arange函数

arrange的三个参数分别是起始值,终止值,步长,依然是左闭右开区间

f = np.arange(0,1,0.1)

linspace函数

和arrange类似,只不过第三个参数是元素个数。

np.linspace(0,1,10)

在这里插入图片描述
如果输入endpoint = False这个参数,则不包括终点
在这里插入图片描述

logshape函数

1 0 m 10^m 10m 1 0 n 10^n 10n直间产生 N N N个数

np.logspace(0, 2, 20)

在这里插入图片描述

特殊的创建函数

zeros函数:用于创建元素全为0的数组
ones函数:用于创建元素全为1的数组
empty函数:用于创建未初始化的规定大小的数组

np.empty((2,3),np.int) #只分配内存,不对其进行初始化

3. 存取元素

切片

a[3:5] #第4个到第5个元素

在这里插入图片描述

a[:5] #没有参数,默认从0开始

在这里插入图片描述

a[:-1] #负数代表从后向前

在这里插入图片描述

a[1:-1:2] # 范围中的第三个参数表示步长,2表示隔一个元素取一个元素

在这里插入图片描述

共享

和Python的列表序列不同,通过下标范围获取的新的数组是原始数组的一个视图。它与原始数组共享同一块数据空间:

b = a[3:7] # 通过下标范围产生一个新的数组b,b和a共享同一块数据空间

此时修改数组b的元素

b[2] = -10 # 将b的第3个元素修改为 -10

查看数组b
在这里插入图片描述
再查看数组a
在这里插入图片描述
a中相应元素也被修改。

布尔数组

生成一个从10到2递减的数组

x = np.arange(10,1,-1)

在这里插入图片描述

x[[3, 3, 1, 8]] # 获取x中的下标为3, 3, 1, 8的4个元素,组成一个新的数组

在这里插入图片描述

b = x[np.array([3,3,-3,8])] #下标可以是负数

在这里插入图片描述
此时b并非从x的切片而来,因此b与x并不共享数据空间

x = np.random.rand(10) # 产生一个长度为10,元素值为0-1的随机数的数组

在这里插入图片描述
查找随机数中大于0.5的元素

x[x>0.5]

在这里插入图片描述
这就是根据布尔数组的原理取出对应的元素。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alfred young

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值