3
以下示例演示了此問題。使用memmap從文件加載的Numpy數據在格式化輸出中使用時引發異常
>>> import numpy as np
>>> X = np.random.randn(10,3)
>>> np.save("x.npy", X)
>>> Y = np.load("x.npy", "r")
>>> Y.min()
memmap(-2.3064808987512744)
>>> print(Y.min())
-2.3064808987512744
>>> print("{}".format(Y.min()))
-2.3064808987512744
>>> print("{:6.3}".format(Y.min()))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: non-empty format string passed to object.__format__
沒有加載函數中的mode ='r',一切都按預期工作。這是一個錯誤?或者,我錯過了什麼?
反正有'提取'從memmap浮點值直接使用它?
編輯:
的「項目」的方法可以用於'的陣列的元素複製到一個標準的Python標量,並返回它。所以,下面的代碼工作:
>>> print("{:6.3}".format(Y.min().item(0)))
-2.31
當你需要提取一個值來使用它時,是否有一個韻或理由?
我得到這個錯誤與np 1.8.2和Py3;我不明白它與1.9.0和py2.7。所以一定有一些錯誤。格式機制取決於實現'__format__'方法的對象(在這個numpy數組或數據類型中)。 – hpaulj
回到'%f'格式化方法怎麼樣?即使「有效」,格式化也不太合適,例如, 「-2。 '而不是'-2.03'。新的格式化方法對於'numpy'可能仍然執行不力。 – hpaulj