尝试打印数组时出现Unicode错误?

2024-09-27 07:34:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非常简单的代码,并试图将生成的numpy数组pos绘制为t的函数,但是我得到了一个随机的unicode错误。我以前从未出现过此错误,我不知道它的含义,也不知道它为什么会出现在这段代码中:

import numpy as np
import matplotlib.pyplot as plt

h = 0.5
x_0 = 1
w = 1
t = np.arange(0, 20, h)
pos, v = np.zeros(len(t)), np.zeros(len(t))
pos[0], v[0] = x_0, 0

def a(pos):
    return -w**2 * pos

for i in range(1, len(t)):
    # Stormer-Verlet method
    pos[i] = pos[i-1] + h*(v[i-1] + 0.5*h*a(pos[i-1]))
    v[i] = v[i-1] + 0.5*h*a(pos[i-1]) + 0.5*h*a(pos[i])

# Plotting position as a function of time
plt.plot(t, pos, label='Störmer-Verlet approximation')

plt.plot行,我得到一个错误:UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 2: ordinal not in range(128)。我还打印了pos,并确认它是一个预期的数组,长度为100(与t长度相同)。有人知道为什么会这样吗


Tags: 代码inposimportnumpylenas错误
1条回答
网友
1楼 · 发布于 2024-09-27 07:34:37

python2没有utf-8作为默认编码。使用以下任一方法定义编码

# coding=utf-8
# -*- coding: utf-8 -*-

应该这样做。请参阅PEP-0263

然后需要在标签前面加上^{}

plt.plot(t, pos, label=u'Störmer-Verlet approximation')

相关问题 更多 >

    热门问题