2024-10-03 04:25:19 发布
网友
我有一个numpy数组:
我想重新安排它,以便将列堆叠在一起,保持它们的初始索引(可能是新列)。你知道吗
我想以这样的方式结束:
Jan2017 | 0 | 0 Feb2017 | 0 | 1 Mar2017 | 0 | 1 ... Jan2017 | 1 | 0 Feb2017 | 1 | 0 etc
其中第一列和第二列表示初始数组的索引
假设矩阵保存在A,然后通过A.transpose().flatten()得到向量
A
A.transpose().flatten()
import numpy as np A = np.arange(12).reshape(3,4) print(A) print(A.transpose().flatten())
您可以堆叠索引数组以及(可能)中的展平值和转置值DataFrame。你知道吗
DataFrame
例如:
作为pd导入
df = pd.DataFrame({0: [0,1,1,0,0,1,0], 1: [0,0,0,0,0,1,0], 2: [1,0,1,0,1,0,0]}, index=['Jan2017', 'Feb2017', 'Mar2017', 'Apr2017', 'May2017', 'Jun2017', 'Jul2017'])
可以这样处理:
>>> np.stack([np.repeat(np.arange(len(df.columns)), len(df)), df.values.T.ravel()], axis=1) array([[0, 0], [0, 1], [0, 1], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [2, 1], [2, 0], [2, 1], [2, 0], [2, 1], [2, 0], [2, 0]], dtype=int64)
^{}用于创建索引:
>>> np.repeat(np.arange(len(df.columns)), len(df)) array([0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2])
^{}将数组转置,^{}将其展平:
>>> df.values.T.ravel() array([0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0], dtype=int64)
然后使用^{}按行(因此axis=1)堆叠
axis=1
假设矩阵保存在
A
,然后通过A.transpose().flatten()
得到向量您可以堆叠索引数组以及(可能)中的展平值和转置值
DataFrame
。你知道吗例如:
作为pd导入
可以这样处理:
^{} 用于创建索引:
^{} 将数组转置,^{} 将其展平:
然后使用^{} 按行(因此
axis=1
)堆叠相关问题 更多 >
编程相关推荐