我有很多在Python程序中生成的矩阵,例如下面的
a
,需要以特定的形式输出它们。
import numpy as np
a = np.array([[1/10000009, 2, 3], [3, 4/3000897, 5]])
print(a)
这将打印
[[9.99999100e-08 2.00000000e+00 3.00000000e+00]
[3.00000000e+00 1.33293479e-06 5.00000000e+00]]
但是,我需要将其打印为
{{9.99999100*^-08, 2.00000000*^+00, 3.00000000*^+00},{3.00000000*^+00, 1.33293479^*-06, 5.00000000*^+00}}
即矩阵结构在任何级别都由
{ , , , }
表示,并且在科学记数法中 e
被 *^
取代。
如何做到这一点?
一个密切相关的问题是,如果
a
是像 a=[[1/10000009, 2, 3], [3, 4/3000897, 5]]
这样的列表的列表,而不是上面的 np.array
。
您可以将对 numpy.ndarray 的引用传递给 str() 以获取其字符串表示形式。
然后只需翻译字符串如下:
import numpy as np
translator = str.maketrans({"e": "*^", "[": "{", "]": "}"})
a = np.array([[1 / 10000009, 2, 3], [3, 4 / 3000897, 5]])
print(str(a).translate(translator))
输出:
{{9.99999100*^-08 2.00000000*^+00 3.00000000*^+00}
{3.00000000*^+00 1.33293479*^-06 5.00000000*^+00}}