从字典的特定键创建多维numpy数组

米哈伊尔_山姆

我有这样的字典:

a = dict(zip( ['k1', 'k2', 'k3', 'k4'], 
          ... [ [1,2,3,4], [10,20,30,40], [100,200,300,400], [1000,2000,3000,4000]])

>>> a
{'k1': [1, 2, 3, 4], 'k2': [10, 20, 30, 40], 'k3': [100, 200, 300, 400], 'k4': [1000, 2000, 3000, 4000]}

我想要做的是:获取多个键的值并从中创建多维 numpy 数组像这样的东西:

result = numpy.array( [a[x] for x in ('k1' , 'k3')]

我试过这个代码:

ar = numpy.array([])
for el in ['k1', 'k3']:
     ar = numpy.r_[ar, num_dict[el]]
ar = ar.reshape(2,len(ar)/2)

但是是否有一些内置函数或更优雅的方式?

米哈伊尔_山姆

我只需要一个来自数据的 numpy 数组,所以我找不到没有循环的方法。我创建功能:

def loadFromDict( fieldnames, dictionary ):
    ''' fieldnames - list of needed keys, dictionary - dict for extraction
     result - numpy.array size of (number of keys, lengths of columns in dict)'''
    ar = numpy.zeros( (len(fieldnames), len(dictionary[fieldnames[0]])) )
    for c,v in enumerate(fieldnames,0):
        ar[c,:] = dictionary[v]
    return ar

在我的例子中,字典的所有列的长度都相同。无论如何,很容易实现它们是不同的:用于[len(v) for v in dictionary.values()]获取所有长度,或查找当前键的长度。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从键创建多维数组

来自分类Dev

创建特定的多维数组

来自分类Dev

创建特定的多维数组

来自分类Dev

从numpy数组创建字典

来自分类Dev

防止numpy创建多维数组

来自分类Dev

从列表创建多维numpy数组

来自分类Dev

如何创建多维numpy数组?

来自分类Dev

从匹配的数组键创建多维数组

来自分类Dev

使用可变键创建多维数组

来自分类Dev

从多维数组中递归删除特定键

来自分类Dev

在PHP中更改多维数组的特定键

来自分类Dev

通过特定键删除多维数组

来自分类Dev

如何使用NumPy从列表创建多维数组?

来自分类Dev

从多维列表创建字典,而无需重复键

来自分类Dev

查找大量键:字典与NumPy数组

来自分类Dev

检查多维数组中是否存在特定的数组键-PHP

来自分类Dev

多维数组与字典性能

来自分类Dev

使用对象的属性作为字典的键,从对象数组创建字典?

来自分类Dev

多维数组:如何获取特定键的所有值?

来自分类Dev

基于特定多个键的唯一多维数组

来自分类Dev

从多维数组中获取具有特定值的键

来自分类Dev

使用url键从随机多维数组中获取特定值

来自分类Dev

递归地从多维数组中删除特定键

来自分类Dev

使用php中的特定键比较多维数组

来自分类Dev

PHP匹配多维数组中特定键的值

来自分类Dev

PHP多维数组根据键提取特定值

来自分类Dev

多维数组的继续键

来自分类Dev

带键的多维数组

来自分类Dev

从键构建多维数组