Skip to main content
 首页 » 编程设计

python之使用 numpy 并排打印两个数组

2025年05月04日10Free-Thinker

我正在尝试在 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相反。