使用Numpy数组中的分数

使用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中使用分数。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程