对 numpy 中的格式化程序感到困惑。 set_printoptions
confused about formatter in numpy. set_printoptions
我遇到了下面这段代码:
z=np.arange(0,12)
np.set_printoptions(formatter=dict(int=lambda x: f'{x:4}'))
print(z)
我明白代码在做什么,但我不清楚 dict() 括号内的数量是多少。没有 int= 我们有一个功能。在 numpy 文档中,格式化程序的值应该是可调用项的字典。键应指示相应格式化函数适用的类型。 Callables 应该 return 一个字符串。那么它不应该是 int: 而不是 int= 吗?当我尝试这样做时出现语法错误
符号int=
只是关键字参数,传递给方法dict()
,相当于
fmt = {"int": lambda x: f'{x:4}'}
其他例子
fmt = dict(int=lambda x: f'{x:4}', float=lambda x: f'{x:4}')
fmt = {"int": lambda x: f'{x:4}', 'float': lambda x: f'{x:10}'}
fmt = dict(int=lambda x: f'{x:4}', float=lambda x: f'{x:10}')
fmt = {"int": lambda x: f'{x:4}', 'float': lambda x: f'{x:10}'}
value = 1
print(fmt[type(value).__name__](value)) # 1
value = 1.1
print(fmt[type(value).__name__](value)) # 1.1
格式化程序字典的键应该是相应数据类型的字符串。检查 docs 是否有 formatter
参数。
d1 = {"int":lambda x: x}
d2 = dict(int=lambda x: x)
d3 = {int:lambda x: x}
print (d1.keys(), d2.keys(), d3.keys())
输出:
dict_keys(['int']) dict_keys(['int']) dict_keys([<class 'int'>])
如您所见,您可以使用 {"int":.....}
或 dict(int=...}
我遇到了下面这段代码:
z=np.arange(0,12)
np.set_printoptions(formatter=dict(int=lambda x: f'{x:4}'))
print(z)
我明白代码在做什么,但我不清楚 dict() 括号内的数量是多少。没有 int= 我们有一个功能。在 numpy 文档中,格式化程序的值应该是可调用项的字典。键应指示相应格式化函数适用的类型。 Callables 应该 return 一个字符串。那么它不应该是 int: 而不是 int= 吗?当我尝试这样做时出现语法错误
符号int=
只是关键字参数,传递给方法dict()
,相当于
fmt = {"int": lambda x: f'{x:4}'}
其他例子
fmt = dict(int=lambda x: f'{x:4}', float=lambda x: f'{x:4}')
fmt = {"int": lambda x: f'{x:4}', 'float': lambda x: f'{x:10}'}
fmt = dict(int=lambda x: f'{x:4}', float=lambda x: f'{x:10}')
fmt = {"int": lambda x: f'{x:4}', 'float': lambda x: f'{x:10}'}
value = 1
print(fmt[type(value).__name__](value)) # 1
value = 1.1
print(fmt[type(value).__name__](value)) # 1.1
格式化程序字典的键应该是相应数据类型的字符串。检查 docs 是否有 formatter
参数。
d1 = {"int":lambda x: x}
d2 = dict(int=lambda x: x)
d3 = {int:lambda x: x}
print (d1.keys(), d2.keys(), d3.keys())
输出:
dict_keys(['int']) dict_keys(['int']) dict_keys([<class 'int'>])
如您所见,您可以使用 {"int":.....}
或 dict(int=...}