创建一个包含空numpy数组的defaultdict
我在想有没有更聪明的方法来创建一个默认字典,来自collections库。这个字典的默认值应该是一个空的numpy数组。
到目前为止,我得到的最好结果是:
import collections
d = collections.defaultdict(lambda: numpy.ndarray(0))
不过,我在想有没有可能跳过这个lambda表达式,直接创建这个字典。比如说:
d = collections.defaultdict(numpy.ndarray(0)) # <- Nice and short - but not callable
2 个回答
3
如果你事先知道数组的大小,还有另一种方法可以使用:
new_dict = defaultdict(lambda: numpy.zeros(array_size))
24
你可以用 functools.partial()
来代替 lambda 函数:
from collections import defaultdict
from functools import partial
defaultdict(partial(numpy.ndarray, 0))
你 总是 需要一个可调用的对象来使用 defaultdict()
,而 numpy.ndarray()
总是 需要至少一个参数,所以你不能直接把 numpy.ndarray
传进去。