NumPy使用

本文深入讲解NumPy库的使用,包括数组操作、索引、函数应用及统计方法,通过实例演示如何进行数值计算、随机数生成及数据处理,是Python数据科学领域的实用教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NumPy安装

    可以安装anaconda,该工具中包含了量化交易所需的各种库。当然包含numpy。

NumPy的数组

    如下样例a作为单价,b作为件数,得出购物车中总商品价格。

import numpy as np
import random
a = [random.uniform(100.0, 200.0) for i in range(50)]
b = [random.randint(10, 50) for i in range(50)]
a = np.array(a)
b = np.array(b)
print(a)
print(b)
print(a*b)
print((a*b).sum())

    如下样例新建了一个三维数组。然后进行了转置。

a = np.array([[[1,2,3],[4,5,6]], [[2,3,4],[6,7,8]]])
print(a)
print(a.T)
print(a.ndim)

    数组简单运算操作。

a = np.arange(10)
print(a)
print(a+1)
print(a*3)
b = np.arange(10, 20)
print(b)
print(a+b)
print(a<b)

    NumPy的数组索引

    数组的索引相关操作。数组的切片是引用,修改会连带修改原数据。

c = np.arange(15)
print(c)
print(c[0:4])
d=c.reshape((3,5))
print(d[0],[1])
print(d[0,1])
print(d[0:2, 0:2])

      filter相关以及布尔型索引。

      c[c>5]涉及了2步运算,第一步,把数组和标量进行运算,生成布尔数组,第二步,把布尔数组作为索引,过滤出数据。

a = [random.randint(0, 10) for i in range(20)]
b = list(filter(lambda x:x>5, a))
print(a)
print(b)

c = np.array(a)
print(c)
print(c>5)
print(c[c>5])
print(c[(c>5) & (c%2==0)])
print(c[(c>5) | (c%2==0)])

    数组的花式索引。

a = np.arange(20)
print(a[1,4,6,7])
b = np.arange(20).reshape(4,5)
print(b[0, b[0] > 2])
print(b[[1,3], :][:, [1,3]])

    NumPy的函数   

    numpy中的常见函数见下。

    

    abs为求绝对值,sqrt为开平方,ceil是向上取整,floor是向下取整,round是四舍五入,trunc是截断。

    modf是把小数和整数部分进行隔离。

a = np.arange(-5, 5)
b = np.abs(a)
print(a)
print(b)
print(np.sqrt(b))

a = np.arange(-5.5, 5.5)
print(a)
print(np.ceil(a))
print(np.floor(a))
print(np.round(a))
print(np.trunc(a))

print(np.modf(a))
x,y = np.modf(a)
print(x)
print(y)

   nan是not a number,不是任何浮点数。inf是infinity,比任何浮点数都大。

NumPy中常用np.nam和np.inf函数,nan常被用来数据缺失值。

a = np.arange(-5, 5)
print(a/a)
b=a/a
c=np.isnan(b)
print(b)
print(c)

a=np.array([2,3,4])
b = a/0
print(b)
c = np.isinf(b)
print(c)

    maximum是求最大值,minimum是求最小值。

a=np.array([2,3,4,7])
b=np.array([3,2,5,5])
c=np.maximum(a,b)
d=np.minimum(a,b)
print(c)
print(d)

    NumPy的统计方法 

    sum是求和,mean是求平均值。min是求最小值,std是求标准差,argmin求最小值索引,argmax求最大值索引,var求方差。

   假设数组是[1,2,3,4,5],平均数为3,

   方差=[(3-1)**2+ (3-2)**2+ (3-3)**2 +(3-4)**2 + (3-5)**2] /5

    方差表示了数据的离散程度。

    标准差为方差开根号,也可以表示数据的离散程度。

a=np.array([2,3,4,7])
b=np.array([3,2,5,5])
print(np.sum(a))
print(np.mean(a))

   NumPy的随机数

print(random.random())
print(random.randint(0, 10))
print(random.choice([1,4,6]))
a=[1,2,5,7]
random.shuffle(a)
print(a)

print(np.random.randint(1,5))
print(np.random.randint(1,5,10))
print(np.random.randint(1,5,(3,5)))
print(np.random.randint(1,5,(3,5,4)))
print(np.random.rand(5))
print(np.random.choice([1,4,6],10))
print(np.random.uniform(2.0, 4.0))

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值