第二十一天-NumPy

2024-03-12 15:28
文章标签 numpy 第二十一

本文主要是介绍第二十一天-NumPy,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

什么是NumPy

NumPy使用

1.数组的创建

2.类型转换

3.赠删改查

4.数组运算

5.矩阵运算


什么是NumPy

1.NumPy操作的是多维数组,什么是纬度?

NumPy使用

1. 安装

pip install numpy

import numpy as np

2.官网:

中文官网:numpy.org.cn

1.数组的创建

1.创建一个一维数组:array

import numpy as np#创建一个一维数组
d1=np.array([1,2,3,4,5])
print(d1)
#查看size
print(d1.size)
#查看type
print(type(d1))
#查看数据维度
print(d1.ndim)

out:

[1 2 3 4 5]
5
<class 'numpy.ndarray'>
1

2.创建一个二维数组:arnge

#创建一个二维数组
d2=np.arange(15)
print(d2)
#增加行,列维度
d2=d2.reshape(3,5)
print(d2)

out:

[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]

3.创建全为0或1的数组

# 创建全为0的数组
d3 = np.zeros(15)
d3 = d3.reshape(3, 5)
print(d3)d4 = np.ones(15)
d4 = d4.reshape(3, 5)
print(d4)

out

[[0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]]
[[1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]]

4.empty,创建新数组,只分配内存空间,不填充任何值

d5 = np.empty(([1,2,3]))
print(d5)

2.类型转换

numpy会自动根据传入类型设置数据类型

1. 数组转np数组

# 数组转为np数组
data = [[1, 2, 3, 4], [5, 6, 7, 8]]
print(type(data))
d1 = np.array(data)
print(d1)
print(type(d1))

out:

<class 'list'>
[[1 2 3 4]
 [5 6 7 8]]
<class 'numpy.ndarray'>

2.dtype识别数据类型

d4 = np.ones(15)
d4 = d4.reshape(3, 5)
print(d4.dtype)

out:float64

3.创建时指定数据类型

d4 = np.arange(15,dtype=np.float64)
d4 = d4.reshape(3, 5)
print(d4)print(d4.dtype)

4.对ndarray进行数据类型转换,astype

data4.astype(np.float64)

3.赠删改查

1.索引

#一维数组索引获取数据
d1=np.arange(15)
print(d1)
print("获取第一个:",d1[0])
print("获取最后一个:",d1[-1])#二维数组
d2=np.arange(15).reshape(3,5)
print(d2)
print("获取第一行第一列,方法1:",d2[0,0])
print("获取第一行第一列,方法2:",d2[0][0])
print("获取倒数第一行第一列,方法1:",d2[-1,-1])
print("获取倒数第一行第一列,方法2:",d2[-1][-1])#三维数组
d2=np.arange(30).reshape(3,5,2)
print(d2)
print("获取第一行第一列第一个,方法1:",d2[0,0,0])
print("获取第一行第一列第一个,方法2:",d2[0][0][0])
print("获取倒数第一行第一列第一个,方法1:",d2[-1,-1,-1])
print("获取倒数第一行第一列第一个,方法2:",d2[-1][-1][-1])

[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]
获取第一个: 0
获取最后一个: 14
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]
获取第一行第一列,方法1: 0
获取第一行第一列,方法2: 0
获取倒数第一行第一列,方法1: 14
获取倒数第一行第一列,方法2: 14
[[[ 0  1]
  [ 2  3]
  [ 4  5]
  [ 6  7]
  [ 8  9]]

 [[10 11]
  [12 13]
  [14 15]
  [16 17]
  [18 19]]

 [[20 21]
  [22 23]
  [24 25]
  [26 27]
  [28 29]]]
获取第一行第一列第一个,方法1: 0
获取第一行第一列第一个,方法2: 0
获取倒数第一行第一列第一个,方法1: 29
获取倒数第一行第一列第一个,方法2: 29

2.索引

#一维数组切片
d1=np.arange(15)
print("===",d1[0:3]) #截取包含起始下标到不包含结尾的数据
print("===",d1[:-1]) #截取全部#二维数组切片
d2=np.arange(15).reshape(3,5)
print("===",d2[0:1,:]) #行参数,列参数
print("===",d2[:,3:4]) #获取全部行,中3列的数据#三维数组
d3=np.arange(30).reshape(3,5,2)
print("===",d3)
print("===",d3[0:1,2:,:]) #行参数,列参数,三维参数#根据索引获取数据
#一维数组
print("===",d1[np.array([0,2,4])])print("===",d2[np.array([0,2]),np.array([1,2])])

=== [0 1 2]
=== [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13]
=== [[0 1 2 3 4]]
=== [[ 3]
 [ 8]
 [13]]
=== [[[ 0  1]
  [ 2  3]
  [ 4  5]
  [ 6  7]
  [ 8  9]]

 [[10 11]
  [12 13]
  [14 15]
  [16 17]
  [18 19]]

 [[20 21]
  [22 23]
  [24 25]
  [26 27]
  [28 29]]]
=== [[[4 5]
  [6 7]
  [8 9]]]
=== [0 2 4]
=== [ 1 12]

4.数组运算

1. 算数运算

import numpy as np#算数运算
a= np.random.random(10000)*10
b= np.random.random(10000)*10
#加法
print("加法:",np.add(a,b))
print("减法:",np.subtract(a,b))
print("除法:",np.divide(a,b))
print("乘法:",np.multiply(a,b))

加法: [13.06866571  6.26206256  7.44861655 ... 12.38302847 13.97542329
 11.69602862]
减法: [-1.04377832  4.84747125  2.0907946  ... -5.08931599 -0.78999914
  7.99437207]
除法: [0.85207689 7.85352893 1.78046438 ... 0.41744326 0.89299336 5.31934836]
乘法: [42.42513755  3.92886251 12.77761661 ... 31.85956422 48.67208937
 18.22177516]

2.数学函数

如:sin, 更多函数请看官方文档

#数学三角函数
ang=np.array([0,30,45,60,90,120,135,150,180])
rad=np.sin(ang*np.pi/180)
print(rad)

[0.00000000e+00 5.00000000e-01 7.07106781e-01 8.66025404e-01
 1.00000000e+00 8.66025404e-01 7.07106781e-01 5.00000000e-01
 1.22464680e-16]

3.统计函数

# 统计函数
d2 = np.array([1, 2, 3, 4, 5])
print("平均值mean:", np.mean(d2))
print("平均值average:", np.average(d2))
print("平均值,加权:", np.average(d2, weights=np.array([2, 2, 1, 1, 1])))
print("中位数median:", np.median(d2))
# 中位数,如未偶数,则取中间2个值进行除以2
print("中位数median,偶数:", np.median([1, 2, 3, 4, 5, 6]))
#方差 求每个数的离散值
print("方差,,var:", np.var(d2))
print("标准差,std:", np.std(d2))

平均值mean: 3.0
平均值average: 3.0
平均值,加权: 2.5714285714285716
中位数median: 3.0
中位数median,偶数: 3.5
方差,求每个数的离散值,var: 2.0
标准差,std: 1.4142135623730951
 

4.聚合运算

sum与np.sum性能对比,np.sum函数比内置统计函数快了10倍

#聚合运算
a = np.array([1, 2, 3, 4, 5])
print("内置统计函数sum:",sum(a))
print("numpay统计函数:sum:",np.sum(a))
print("累计乘prod:",np.prod(a))
print("最大值max:",np.max(a))
print("最小值min:",np.min(a))

内置统计函数sum: 15
numpay统计函数:sum: 15
累计乘prod: 120
最大值max: 5
最小值min: 1

5.筛选排序:

# 筛选、排序
a = np.array([1, 2, 3, 4, 5, 6])
# 筛选函数,注意返回的是下标
print("筛选:", np.where(a > 3))
print("排序,升序:", np.sort(a))

筛选: (array([3, 4, 5], dtype=int64),)
排序: [1 2 3 4 5 6]

5.矩阵运算

1.什么是矩阵,

  • 按照长方阵列(m行*n列)排列的数值集合
  • dot使用
a = np.arange(15).reshape(3, 5)
b = np.arange(15, 30).reshape(3, 5)
print("a:",a)
print("b:",b)
# 转置
a = a.T
print("a转置后",a)
print(np.dot(a, b))

a: [[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]
b: [[15 16 17 18 19]
 [20 21 22 23 24]
 [25 26 27 28 29]]
a转置后 [[ 0  5 10]
 [ 1  6 11]
 [ 2  7 12]
 [ 3  8 13]
 [ 4  9 14]]
[[350 365 380 395 410]
 [410 428 446 464 482]
 [470 491 512 533 554]
 [530 554 578 602 626]
 [590 617 644 671 698]]

这篇关于第二十一天-NumPy的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/801712

相关文章

python科学计算:NumPy 线性代数与矩阵操作

1 NumPy 中的矩阵与数组 在 NumPy 中,矩阵实际上是一种特殊的二维数组,因此几乎所有数组的操作都可以应用到矩阵上。不过,矩阵运算与一般的数组运算存在一定的区别,尤其是在点积、乘法等操作中。 1.1 创建矩阵 矩阵可以通过 NumPy 的 array() 函数创建。矩阵的形状可以通过 shape 属性来访问。 import numpy as np# 创建一个 2x3 矩阵mat

探索Python的数学魔法:Numpy库的神秘力量

文章目录 探索Python的数学魔法:Numpy库的神秘力量背景:为什么选择Numpy?Numpy是什么?如何安装Numpy?五个简单的库函数使用方法场景应用常见Bug及解决方案总结 探索Python的数学魔法:Numpy库的神秘力量 背景:为什么选择Numpy? 在Python的世界中,数据处理和科学计算是不可或缺的一部分。但原生Python在处理大规模数据时可能会显

Numpy random.random()函数补充

np.random.random() np.random.random()的作用是生成指定形状的均匀分布的值为[0,1)的随机数 参数为size,也就是用于指定的形状大小 import numpy as npprint(np.random.random(size=(2, 2)))# [[0.19671797 0.85492315]# [0.99609539 0.66437246]]

解决RuntimeError: Numpy is not available

运行项目时,遇到RuntimeError: Numpy is not available 这是因为Numpy 版本太高,将现有Numpy卸载 pip uninstall numpy 安装numpy=1.26.4,解决此问题 pip install numpy=1.26.4 -i https://pypi.tuna.tsinghua.edu.cn/simple

6.科学计算模块Numpy(3)对ndarray数组的常用操作

引言 众所周知,numpy能作为python中最受欢迎的数据处理模块,脱离不了它最核心的部件——ndarray数组。那么,我们今天就来了解一下numpy中对ndarray的常用操作。 通过阅读本篇博客你可以: 1.掌握ndarray数组的切片和copy 2.学会如何改变ndarray的数组维度 3.掌握数组的拼接 一、ndarray数组的切片和copy 1.ndarray数组的切片

python科学计算:NumPy 简介与安装

1 NumPy 是什么? NumPy(Numerical Python 的简称)是 Python 语言中最为广泛使用的科学计算库。它支持多维数组和矩阵运算,并提供丰富的数学函数库,使得数据处理和数值计算变得更加高效。 NumPy 的核心是提供了一个强大的 ndarray 对象,这是一种用于存储同质数据的多维数组,能够快速执行数值运算。与 Python 原生的列表相比,NumPy 数组的计算速度

python科学计算:NumPy 基础操作

1 创建数组(ndarray) NumPy 的核心对象是 ndarray,它是一个多维数组,用于存储同质数据(即所有元素的类型相同)。我们可以通过多种方式创建数组,以下是一些常见的方法: 1.1 使用 array() 函数 array() 函数是创建 NumPy 数组的基本方法。可以通过传入一个 Python 列表或嵌套列表来创建数组。 import numpy as np# 创建一维数组

Numpy中type()、ndim、shape、size、dtype、astype的用法

目录 numpy基础介绍示例分析及总结:itemsize、nbytes函数 numpy基础介绍 Numpy 补充了Python语言所欠缺的数值计算能力,是其它数据分析及机器学习库的底层库。因其完全标准C语言实现,运行效率充分优化。最重要一点是开源免费。numpy的核心是矩阵(即多维数组)。 示例 import numpy as nparr =np.array([[1,2,3]

第二十一篇——地形篇:六种地形的战术要点

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 通过地形的不同分析,动态的看待每一种地形的方式;通过不同的组合结果再结合实际的情况当做判断的依据 二、思路&方案 1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇

python random和numpy random

numpy是python的一个数值计算库,可是有许多语法和python不兼容。 比如python的random.randint(low,high)使用方法是返回[low,high]之间的整数,官方文档: random.randint(a, b) Return a random integer N such that a <= N <= b. 注意是两边都是闭区间,但在numpy中,rand