python - Pandas/Numpy 从数组列中获取矩阵

标签 python pandas

我有一个带有一列列表的 Pandas 数据框。

df:

    inputs
0   [1, 2, 3]
1   [4, 5, 6]
2   [7, 8, 9]
3   [10, 11, 12]

我需要矩阵
array([[ 1,  2,  3],
      [ 4,  5,  6],
      [ 7,  8,  9],
      [10, 11, 12]])

一个有效的方法来做到这一点?

注意:当我尝试时 df.inputs.as_matrix()输出是
array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]], dtype=object)

具有形状 (4,) ,不是 (4,3)如预期的。

最佳答案

您可以将列转换为列表,然后应用 numpy 数组,如果列中的所有列表都具有相同的长度,这将生成一个二维数组:

arr = np.array(df.inputs.tolist())

#array([[ 1,  2,  3],
#       [ 4,  5,  6],
#       [ 7,  8,  9],
#       [10, 11, 12]])

arr.shape
# (4, 3)

或者其他选项使用 .values首先访问 numpy 对象,然后将其转换为 @piRSquared 评论的列表,使用给出的示例稍微快一点:
%timeit df.inputs.values.tolist()
# 100000 loops, best of 3: 5.52 µs per loop

%timeit df.inputs.tolist()
# 100000 loops, best of 3: 11.5 µs per loop

关于python - Pandas/Numpy 从数组列中获取矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42054132/

相关文章:

python - Pandas:从 PyODBC 读取数据并解析不同列中的日期时间

python - 升序/重置多索引 Pandas 的整数值

python - 具有最大池化的卷积神经网络 (CNN)

python setuptools setup.cfg : Including main- and subpackages in the build dir

python - 如何将 cmd1 的标准输出通过管道传输到扭曲的 cmd2 的标准输入,其中 cmd1 进程在扭曲的客户端上,而 cmd2 是服务器上的进程?

python - 搜索查询在Elasticsearch中不返回任何内容

python - 如何查询比较字符串 Pandas

python - 识别并更改组内的极端日期时间异常值

python - 如何从数据帧列字符串中提取周期和变量名称以进行多索引面板数据准备

python - 将Python代码转换为Linux可执行文件