我正在尝试在 python 中使用 numpy 创建一个余弦表。我想要角度的余弦旁边的角度,所以它看起来像这样:
0.0 1.000 5.0 0.996 10.0 0.985 15.0 0.966
20.0 0.940 25.0 0.906 and so on.
我正在尝试使用 for 循环来完成它,但我不确定如何让它工作。 目前,我有 .
有什么建议吗?
请您参考如下方法:
假设您有:
>>> d = np.linspace(0, 360, 10, endpoint=False)
>>> c = np.cos(np.radians(d))
如果您不介意旁边有一些括号之类的东西,那么您可以使用 np.c_ 简单地按列连接。 , 并显示:
>>> print(np.c_[d, c])
[[ 0.00000000e+00 1.00000000e+00]
[ 3.60000000e+01 8.09016994e-01]
[ 7.20000000e+01 3.09016994e-01]
[ 1.08000000e+02 -3.09016994e-01]
[ 1.44000000e+02 -8.09016994e-01]
[ 1.80000000e+02 -1.00000000e+00]
[ 2.16000000e+02 -8.09016994e-01]
[ 2.52000000e+02 -3.09016994e-01]
[ 2.88000000e+02 3.09016994e-01]
[ 3.24000000e+02 8.09016994e-01]]
但如果您想要删除它们,一种可能是使用简单的正则表达式:
>>> import re
>>> print(re.sub(r' *\n *', '\n',
np.array_str(np.c_[d, c]).replace('[', '').replace(']', '').strip()))
0.00000000e+00 1.00000000e+00
3.60000000e+01 8.09016994e-01
7.20000000e+01 3.09016994e-01
1.08000000e+02 -3.09016994e-01
1.44000000e+02 -8.09016994e-01
1.80000000e+02 -1.00000000e+00
2.16000000e+02 -8.09016994e-01
2.52000000e+02 -3.09016994e-01
2.88000000e+02 3.09016994e-01
3.24000000e+02 8.09016994e-01
我要删除括号,然后将其传递给正则表达式以删除每行两边的空格。
np.array_str还可以让您设置精度。如需更多控制,您可以使用 np.array2string相反。
