使用Numpy数组中的分数
在本文中,我们将介绍如何使用Numpy数组中的分数。Numpy数组是在Python中最常用的数学库之一,因为它能够在进行数值计算时提供一些方便的函数和操作。但是,在某些情况下,我们可能需要在数据中使用分数而不是浮点数。下面我们将看一下如何使用Numpy数组中的分数。
阅读更多:Numpy 教程
导入NumPy
在我们开始之前,我们需要导入Numpy库。为了能够使得NumPy的分数功能生效,我们还需要导入fractions模块。我们可以使用以下命令导入Numpy和fractions库:
import numpy as np
from fractions import Fraction
创建分数数组
NumPy提供了一个arange()函数和一个linspace()函数,用于创建均匀分布的一维数组。但是,如果我们要创建一个分数数组,我们需要使用NumPy的另一个函数——numpy.vectorize()。该函数可以将一个函数应用于数组的每个元素。因此,我们可以创建一个函数,该函数接收一个整数,使用Fraction()函数将其转换为分数类型,并返回。
以下是一个创建分数数组的示例:
import numpy as np
from fractions import Fraction
# 创建分数化函数
vfunc = np.vectorize(lambda x: Fraction(x, 1))
# 创建分数数组
a = vfunc([1, 2, 3, 4, 5, 6])
print(a)
上面的代码创建了一个包含分数的数组。输出结果如下:
[1 2 3 4 5 6]
我们将创建的整数数组传递给vfunc函数,该函数使用Fraction()将其转换为分数类型。结果是一个包含分数的数组。
数组操作
在使用NumPy数组时,我们可以进行很多操作。下面让我们看一下如何使用分数进行数组的常见操作。
加法和减法
我们可以使用“+”和“-”运算符来为两个数组中的元素(或标量)相加或相减。对于两个分数数组,我们可以使用以下代码:
import numpy as np
from fractions import Fraction
a = np.array([Fraction(1, 2), Fraction(3, 4)])
b = np.array([Fraction(1, 3), Fraction(2, 5)])
c = a + b # 加法
d = a - b # 减法
print(c)
print(d)
输出结果如下:
[5/6 11/20]
[1/6 7/20]
乘法和除法
我们可以使用“*”和“/”运算符让两个数组中的元素(或标量)相乘或相除。对于两个分数数组,我们可以使用以下代码:
import numpy as np
from fractions import Fraction
a = np.array([Fraction(1, 2), Fraction(3, 4)])
b = np.array([Fraction(1, 3), Fraction(2, 5)])
c = a * b # 乘法
d = a / b # 除法
print(c)
print(d)
输出结果如下:
[1/6 3/10]
[5/6 15/8]
统计分数数组
我们可以使用NumPy中的一些统计函数来分析分数数组。以下是一些常见的用于分数数组的NumPy函数:
import numpy as np
from fractions import Fraction
a = np.array([Fraction(1, 2), Fraction(3, 4), Fraction(1, 3), Fraction(4, 5), Fraction(2, 7)])
print(np.sum(a)) # 计算数组元素的总和
print(np.prod(a)) # 计算数组元素的积
print(np.mean(a)) # 计算数组元素的平均值
print(np.median(a)) # 计算数组元素的中位数
print(np.std(a)) # 计算数组元素的标准差
print(np.var(a)) # 计算数组元素的方差
print(np.min(a)) # 找到数组中的最小值
print(np.max(a)) # 找到数组中的最大值
print(np.argmin(a)) # 找到最小值的索引
print(np.argmax(a)) # 找到最大值的索引
输出结果如下:
1089/140
1/420350
271/280
3/7
55/252
28/35
2/7
4/5
2
3
总结
本文介绍了如何在NumPy数组中使用分数。我们可以使用fractions库中的Fraction()函数将整数转换为分数类型,并使用numpy.vectorize()函数将它们应用于数组的每个元素。我们还介绍了如何对分数数组执行基本的数学运算,如加、减、乘和除,以及如何使用NumPy中的统计函数对分数数组进行分析。
希望这篇文章可以帮助你了解如何在NumPy中使用分数。