当前位置: 首页 > news >正文

什邡网站建设公司软文写作技巧及范文

什邡网站建设公司,软文写作技巧及范文,域名购买教程,成都本地网站文章目录 1.为什么要学习NumPy2.NumPy的数组变换以及索引访问3.NumPy筛选使用介绍筛选出上面nb数组中能被3整除的所有数筛选出数组中小于9的所有数提取出数组中所有的奇数数组中所有的奇数替换为-1二维数组交换2列生成数值5—10,shape 为(3,5)的二维随机浮点数 NumP…

文章目录

  • 1.为什么要学习NumPy
  • 2.NumPy的数组变换以及索引访问
  • 3.NumPy筛选使用介绍
    • 筛选出上面nb数组中能被3整除的所有数
    • 筛选出数组中小于9的所有数
    • 提取出数组中所有的奇数
    • 数组中所有的奇数替换为-1
    • 二维数组交换2列
    • 生成数值5—10,shape 为(3,5)的二维随机浮点数
  • NumPy数组维度等进阶操作
    • NumPy做矩阵乘法实现的两种方法
    • NumPy求平均值,求和
    • NumPy 求标准差,方差
    • NumPy 求最大最小值,累和和累乘
    • NumPy求迹
    • 高维数组变为向量
    • 增加或删除维度的实现方法

1.为什么要学习NumPy

通过一个案例来比较分析numpy和python的数值计算性能

import time
import numpy as nplist = range(int(10e6))tis1 =time.perf_counter()
a = [i*2 for i in list]
tis2 =time.perf_counter()print(tis2-tis1)na = np.array(range(int(10e6)))tis1 =time.perf_counter()
na2 = na * 2
tis2 =time.perf_counter()
print(tis2-tis1)

在这里插入图片描述
通过上面的案例 可以看出 NumPy 的数值计算能力比python自带的要快一个数量级,所以NumPy 值得我们学习它。

2.NumPy的数组变换以及索引访问

# 创建一个所有元素为True 二维数组
a = np.ones((3,5)) == 1
print(a)# 创建一个所有元素为Flase 二维数组
b = np.zeros((3,5)) == 1
print(b)#一维数组转二维
na = np.arange(100)
print(na)
nb = na.reshape((20,5))
print(nb)#numpy 索引#访问第一行第一列的元素
print(nb[1,1])#返回第一行数组
print(nb[0])#返回数组的前3行(切片)
print(nb[:3])#返回数组的第一列
print(nb[:,0])#返回数组的前3列
print(nb[:,:3])#返回数组前3行前3列
print(nb[:3,:3])

3.NumPy筛选使用介绍

筛选出上面nb数组中能被3整除的所有数

print(nb[nb % 3 == 0])

筛选出数组中小于9的所有数

print(nb[nb < 9])

提取出数组中所有的奇数

print(nb[nb % 2 != 0])

数组中所有的奇数替换为-1

#numpy 中 where的使用 3个参数 类似 三目运算符 第一个参数是条件表达式 第二个是符合条件表达式的结果 第三个是不符合的结果
print(np.where(nb % 2 == 0, nb, -1))

二维数组交换2列

#交换第一列和第三列
print(nb[:, [0, 3, 2, 1, 4]])mask = list(range(5))
mask[1], mask[3] = mask[3], mask[1]
print(nb[:, mask])

生成数值5—10,shape 为(3,5)的二维随机浮点数

n1 = np.random.randint(5, 10, (3, 5))
print(n1)# 0,1 的二维随机数组
n2 = np.random.rand(3, 5)print(n1 + n2)

NumPy数组维度等进阶操作

NumPy做矩阵乘法实现的两种方法

v1 = np.arange(3).reshape(1, 3)
v2 = np.arange(6).reshape(3, 2)# 点乘
result = np.dot(v1,v2)# 先将数组转化为矩阵
result1 = np.matrix(v1) * np.matrix(v2)print(result)
print(result1)

NumPy求平均值,求和

arr = np.random.randint(1, 10, (3, 4))# 所有数的平均值
arr.mean()# 按照行求平均值
arr.mean(axis=1)# 按照列求平均值
arr.mean(axis=0)#求和
arr.sum(axis=0)
arr.sum(axis=1)

NumPy 求标准差,方差

arr = np.arange(6).reshape(2, 3)# 标准差
print(arr.std(axis = 1))
# 方差
print(arr.var())

NumPy 求最大最小值,累和和累乘

 array = np.random.randint(1,50,(3,4))array.max()array.min()# 累和arr = [1,3,5]# 累和后arr = [1,4,9]#累加array.cumsum(axis = 0)# 累乘array.cumprod(axis = 0)

NumPy求迹

在Python的NumPy库中,可以使用numpy.trace()函数来计算矩阵的迹(trace)。迹是矩阵对角线上元素的和。

以下是使用NumPy计算矩阵迹的示例代码:

import numpy as np# 创建一个矩阵
matrix = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])# 计算矩阵的迹
trace = np.trace(matrix)print("矩阵迹:", trace)

输出结果:

矩阵迹: 15

在这个示例中,我们创建了一个3x3的矩阵,然后使用np.trace()函数计算了矩阵的迹。最后,我们将迹的结果打印出来。

注意,numpy.trace()函数只能用于二维矩阵,如果要计算高维矩阵的迹,可以先使用numpy.diagonal()函数提取对角线上的元素,然后再求和。

高维数组变为向量

在NumPy中,可以使用numpy.ravel()函数将多维数组转换为一维向量。这个函数会将数组展平成一个连续的一维数组,并按照行优先的顺序进行展平。

以下是使用numpy.ravel()函数将高维数组变为向量的示例代码:

import numpy as np# 创建一个高维数组
arr = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])# 将高维数组展平成向量
vector = np.ravel(arr)print("向量:", vector)

输出结果:

向量: [1 2 3 4 5 6 7 8 9]

在这个示例中,我们创建了一个3x3的高维数组arr,然后使用np.ravel()函数将其展平为一维向量vector。最后,我们将向量打印出来。

除了np.ravel()函数,还可以使用np.flatten()函数实现类似的功能,两者的区别在于np.ravel()函数返回的是数组的视图(view),而np.flatten()函数返回的是数组的副本(copy)。如果不关心返回的是视图还是副本,可以使用np.ravel()函数更高效。

在NumPy中,除了使用numpy.ravel()函数将多维数组展平为一维向量之外,还可以使用numpy.flatten()方法实现相同的功能。这两个方法在展平数组方面是等效的,但它们有一个重要的区别:

  • numpy.ravel(): 返回一个展平的数组视图(view),如果对返回的视图进行修改,原始数组也会被修改。
  • numpy.flatten(): 返回一个展平的数组副本(copy),对返回的副本进行修改不会影响原始数组。

以下是使用numpy.flatten()方法将高维数组展平为向量的示例代码:

import numpy as np# 创建一个高维数组
arr = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])# 将高维数组展平成向量
vector = arr.flatten()print("向量:", vector)

输出结果:

向量: [1 2 3 4 5 6 7 8 9]

在这个示例中,我们使用arr.flatten()方法将高维数组arr展平为一维向量vector,并将结果打印出来。

需要注意的是,无论是numpy.ravel()函数还是numpy.flatten()方法,都会将多维数组展平为一维向量,但返回的是视图或副本的区别可能会对内存管理和性能产生一定的影响。因此,在选择使用哪种方法时,可以根据具体的需求和性能要求来进行选择。

增加或删除维度的实现方法

在NumPy中,可以使用以下方法来增加或删除数组的维度:

  1. 增加维度:

    • 使用numpy.newaxisNone关键字:可以在指定位置使用np.newaxisNone关键字来增加新的维度。例如,可以通过arr[:, np.newaxis]在二维数组的列维度之间增加一个新维度。
    import numpy as np# 创建一个一维数组
    arr = np.array([1, 2, 3])# 增加新维度
    new_arr = arr[:, np.newaxis]print("新数组的形状:", new_arr.shape)
    

    输出结果:

    新数组的形状: (3, 1)
    

    在这个示例中,我们使用arr[:, np.newaxis]将一维数组arr在列维度之间增加了一个新维度,得到了形状为(3, 1)的新数组new_arr

    • 使用numpy.expand_dims()函数:该函数可以在指定位置上增加新的维度。第一个参数是输入数组,第二个参数axis是要插入新维度的位置。
    import numpy as np# 创建一个一维数组
    arr = np.array([1, 2, 3])# 增加新维度
    new_arr = np.expand_dims(arr, axis=1)print("新数组的形状:", new_arr.shape)
    

    输出结果:

    新数组的形状: (3, 1)
    

    在这个示例中,我们使用np.expand_dims(arr, axis=1)将一维数组arr在列维度之间增加了一个新维度,得到了形状为(3, 1)的新数组new_arr

  2. 删除维度:

    • 使用numpy.squeeze()函数:该函数可以删除长度为1的维度。默认情况下,它将删除所有长度为1的维度,但也可以通过指定axis参数来仅删除特定位置的长度为1的维度。
    import numpy as np# 创建一个三维数组
    arr = np.array([[[1], [2], [3]]])# 删除维度
    new_arr = np.squeeze(arr)print("新数组的形状:", new_arr.shape)
    

    输出结果:

    新数组的形状: (3,)
    

    在这个示例中,我们使用np.squeeze(arr)删除了长度为1的维度,将原本形状为(1, 3, 1)的三维数组arr转换为形状为(3,)的新数组new_arr

需要注意的是,增加或删除维度时,可以根据具体需求选择合适的方法。numpy.newaxisNone关键字的使用比较灵活,而numpy.expand_dims()numpy.squeeze()函数更具有可读性

http://www.dinnco.com/news/46532.html

相关文章:

  • wordpress关闭前台编辑功能大冶seo网站优化排名推荐
  • 域名查询 站长查询网络代理app
  • 合肥 网站制作高佣金app软件推广平台
  • 做兼职看什么网站好百度输入法下载
  • 西宁做网站哪家好seo搜索培训
  • 中山建设网站公司软文自助发稿平台oem
  • 郑州设计师网站html制作网站
  • 网站建设公司哪有淘宝摄影培训推荐
  • 珠海市企业网站制作服务机构企业网站的域名是该企业的
  • 网站收录查询代码seo专业术语
  • 一个成功网站要素主要有哪些东莞网站推广优化网站
  • 政府网站建设通知网络营销和传统营销有什么区别
  • 企业官方网站的作用网址
  • 合肥做网站点击精灵seo
  • 岳阳网站开发收费网络营销外包推广价格
  • 做网站要学什么东西一份完整的市场调查方案
  • 内网如何做网站访问推广
  • 音乐视频怎么做mp3下载网站微信公众号软文怎么写
  • 网站建设方法seo优化软件大全
  • 搜索引擎手机动态网站制作设计牡丹江网站seo
  • 网站建设签收单在哪里推广比较好
  • 网站顶部小图标怎么做营销渠道的三个类型
  • 电商运营适合女生吗域名年龄对seo的影响
  • 郴州做网站阿里云域名查询和注册
  • 免费网站模板源码一个网站如何推广
  • 美食网站建设目的搜狗seo
  • 叙述网站的设计制作流程佛山旺道seo
  • 南通高端网站建设机构百度seo入驻
  • 网站建设公司 青岛友情链接例子
  • 网站制作价格 上海关键词seo服务