python - mpmath 中的 mpf 是什么意思?

标签 python numpy sympy mpmath

下面的

x 的值为:

[mpf('0.0') mpf('0.10000000000000001') mpf('0.20000000000000001')
 mpf('0.30000000000000004') mpf('0.40000000000000002') mpf('0.5')
 mpf('0.60000000000000009') mpf('0.70000000000000007')
 mpf('0.80000000000000004') mpf('0.90000000000000002')]

代码1

import numpy as np
import mpmath as mp
import matplotlib.pyplot as plt

x = mp.arange(0,1,0.1)
y=x
plt.plot(x,y)
plt.show()

一切都很好

代码2

import numpy as np
import mpmath as mp
import matplotlib.pyplot as plt

x = mp.arange(0,1,0.1)
y = 2.*x

plt.plot(x,y)
plt.show()

发生错误,表示:无法将序列乘以“float”类型的非 int。 所以在代码 3 中我将 2. 更改为 2

代码3

import numpy as np
import mpmath as mp
import matplotlib.pyplot as plt

x = mp.arange(0,1,0.1)
y = 2*x

plt.plot(x,y)
plt.show()

这次它说:x 和 y 必须具有相同的第一维度。

最后,我发现我可以使用np.array使x成为一个数组,所有的麻烦都消失了。

代码4

import numpy as np
import mpmath as mp
import matplotlib.pyplot as plt

x = mp.arange(0,1,0.1)
y = 2.*np.array(x)

plt.plot(x,y)
plt.show()

谁能给我解释一下,x 代表什么,mpf 是什么。为什么上面的代码会这样?如果x不是一个数值数组,为什么它可以用来绘图?如果是数组,为什么不能乘以数字呢?我很困惑!

最佳答案

您的x只是一个列表:

>>> x = mp.arange(0, 1, 0.1)
>>> type(x)
list

这意味着您将获得正常的列表行为:

>>> x * 2.0
TypeError: can't multiply sequence by non-int of type 'float'
>>> y = [e * 2.0 for e in x]

这将转换为 NumPy 对象数组:

>>> np.array(x).dtype
dtype('O')

这意味着您可以进行逐元素操作:

>>> np.array(x) * 2000.0
array([mpf('0.0'), mpf('200.0'), mpf('400.0'), mpf('600.00000000000011'),
       mpf('800.0'), mpf('1000.0'), mpf('1200.0000000000002'),
       mpf('1400.0000000000002'), mpf('1600.0'), mpf('1800.0')], d

plt.plot(x,y) 可以使用列表或 NumPy 数组作为输入。

关于python - mpmath 中的 mpf 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34223207/

相关文章:

python - 从多个字符串中提取序列

python - python 中上升最快的阶乘(Pochhammer 函数)

python - 如何在 Sympy 的矩阵运算中组合多项式?

python - SymPy,如何强制浮点以防止 Cython nogil 上下文中的错误

python - 用于解析网页的人工智能 (AI) 相关技术有哪些?

python - 构造一个大于任何字符串的对象

Python 打印带有\u 转义的 json,解码错误

python - 创建一个 Pandas 数据透视表来计算项目一起出现在列表中的次数

python - 在包含图像的数组中创建批处理

python - 使用matplotlib和mysql数据库创建散点图