如何从可迭代的元组创建多维numpy数组?

Maa*_*ten 8 python numpy python-2.7

我想从iterable中创建一个numpy数组,它产生值的元组,例如数据库查询.

像这样:

data = db.execute('SELECT col1, col2, col3, col4 FROM data')
A = np.array(list(data))
Run Code Online (Sandbox Code Playgroud)

有没有更快的方法这样做,而不首先将迭代转换为列表?

Maa*_*ten 1

尽管从技术上讲这不是我问题的答案,但我找到了一种方法来完成我想做的事情:

def get_cols(db, cols):
    def get_col(col):
        data = db.execute('SELECT '+col+' FROM data', dtype=np.float64)
        return np.fromiter((v[0] for v in data))

    return np.vstack([get_col(col) for col in cols]).T
Run Code Online (Sandbox Code Playgroud)