python/NumPy库的使用

1.NumPy的主要特点:

  1. 高性能的多维数组对象:NumPy的核心是ndarray,它是一个高性能的多维数组对象。
  2. 广播功能:NumPy提供了广播(broadcasting)功能,允许不同形状的数组进行数学运算。
  3. 集成C/C++代码:NumPy可以无缝集成C/C++代码,提高性能。
  4. 广泛的数学函数库:提供了大量的数学函数,包括线性代数、傅里叶变换、随机数生成等。
  5. 节省内存:NumPy的数组比Python原生的列表更加节省内存。

2.安装NumPy:

你可以通过pip命令安装NumPy:

pip install numpy

3.NumPy的基本使用:

  1. 创建数组:

请注意:NumPy创建的数组与默认创建的数组类型不同

默认创建数组类类位:list

 NumPy创建的数组类型为:numpy.ndarray

ata1 = np.arange(15).reshape(5,3)
print(data1)
#创建10个元素的数组,默认填充0
print(np.zeros(10)) # 一维数组
print(np.zeros((2,5))) # 二维数组
print(np.zeros((2,3,4))) # 三维数组
#创建10个元素的数组,默认填充1
print(np.ones(10))# 一维数组
print(np.ones((2,5)))# 二维数组
print(np.ones((2,3,4)))# 三维数组

print(np.empty((1,2,3)))#创建三维数组开辟空间占位先不给值

 2.类型转换

改例子将int类型转换为float64

# 引入numpy依赖
import numpy as np

data = np.array([1,2,3,4,5,6])
#输出数据类型
print(data.dtype)
#类型转换
data = np.array([1,2,3,4,5,6],dtype=np.float64)
print(data.dtype)

 4.NumPy的切片操作

import numpy as np


#索引和切片用于获取数组中部分(区间)的数据
data = np.array([1,2,3,4,5,6])
print(data)
#获取数组4的值,通过下标值指向要获取的数据,下标值由0开始至无限大
print(data[3])
#负数从右侧数。通常情况用于获取最后一个数据
print(data[-1])

#二维数组
data = np.arange(14).reshape(2,7)
print(data)
print(data[0,4])
print(data[-1,-1])

#三维数组
data = np.arange(30).reshape(2,3,5)
print(data)
print(data[1,0,0])
print(data[0][-1][-1],data[1][-1][-1])
#切片
#一维数组
data = np.array([1,2,3,4,5,6])
#a~b ,a<=x<b
print(data[0:3])
print(data[2:])
print(data[:4])
print(data[:-2])
#二维数组
data = np.arange(14).reshape(2,7)
print(data)
#参数1:行参数
#参数2:列参数
print(data[1:,:3])
print(data[:,3:4])
print(data[1:,3:4])
#三维数组
data = np.arange(30).reshape(2,3,5)
print(data)
print(data[0:1,0:2])

5.NumPy数学运算

import numpy as np

a = np.random.random(10000)*10
b = np.random.random(10000)*10
print(a)
print(b)

print(a+b)
print(np.add(a,b))

print(a-b)
print(np.subtract(a,b))

print(a/b)
print(np.divide(a,b))

# ang = np.array([0,30,45,60,90,120,135,150,180])
# rad = np.sin(ang*np.pi/180)
# print(rad)
#统计运算
data = np.array([1,2,3,4,5])
#均值
print(data.mean())
print(np.average(data))
#配置权重
print(np.average(data,weights=np.array([2,2,1,1,1])))
print(np.average(data,weights=np.array([1,1,1,2,3])))
#中位数
print(np.median(data))
#方差
print(np.var(data))
#标准差
print(np.std(data))
#聚合运算
#累加
print(np.sum(data))
#累乘
print(np.prod(data))
#最大值
print(np.max(data))
#最小值
print(np.min(data))

data = np.array([1,2,3,4,5])
#筛选·排序
#输出选中数据的下标值
print(np.where(data>3))
print(np.where(data<3))
#排序
print(np.sort([5,3,7,9,1,4,2,3,6,8]))

*更多运算方法: 

  1. 创建随机数组

    • a 和 b 是通过 np.random.random(10000)*10 创建的包含10000个元素的随机数组,每个元素的值在0到10之间。
  2. 数组加法

    • a+b 直接使用加号运算符对两个数组进行逐元素相加。
    • np.add(a, b) 使用NumPy的 add 函数进行逐元素相加,结果与直接使用加号相同。
  3. 数组减法

    • a-b 使用减号运算符对两个数组进行逐元素相减。
    • np.subtract(a, b) 使用NumPy的 subtract 函数进行逐元素相减。
  4. 数组除法

    • a/b 使用除号运算符对两个数组进行逐元素相除。
    • np.divide(a, b) 使用NumPy的 divide 函数进行逐元素相除。
  5. 数组的三角函数

    • 注释掉的代码 ang = np.array([0,30,45,60,90,120,135,150,180]) 创建了一个包含角度的数组。
    • rad = np.sin(ang*np.pi/180) 将角度转换为弧度并计算每个角度的正弦值。
  6. 统计运算

    • data.mean() 计算数组 data 的均值。
    • np.average(data) 计算数组 data 的平均值,与 mean() 功能相同。
    • np.average(data, weights=np.array([2,2,1,1,1])) 计算加权平均值,权重数组为 [2,2,1,1,1]
    • np.average(data, weights=np.array([1,1,1,2,3])) 计算另一个加权平均值,权重数组为 [1,1,1,2,3]
    • np.median(data) 计算数组 data 的中位数。
    • np.var(data) 计算数组 data 的方差。
    • np.std(data) 计算数组 data 的标准差。
  7. 聚合运算

    • np.sum(data) 计算数组 data 的总和。
    • np.prod(data) 计算数组 data 的元素乘积。
    • np.max(data) 找出数组 data 的最大值。
    • np.min(data) 找出数组 data 的最小值。
  8. 筛选和排序

    • np.where(data>3) 返回数组 data 中大于3的元素的索引。
    • np.where(data<3) 返回数组 data 中小于3的元素的索引。
    • np.sort([5,3,7,9,1,4,2,3,6,8]) 对列表 [5,3,7,9,1,4,2,3,6,8] 进行排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值