将Pandas DataFrame的所有列乘以存储在Series?中的列向量的最佳方法是什么?我以前在Matlab中这样做repmat(),在Pandas中不存在.我可以使用np.tile(),但每次来回转换数据结构看起来很难看.
谢谢.
所以现在,如果我增加一个列表,即“ x = [1,2,3]* 2 I get x as [1,2,3,1,2,3]但是,这不适用于熊猫”。
因此,如果要复制PANDAS DF,则必须将一列设为列表并包含多个:
col_x_duplicates = list(df['col_x'])*N
new_df = DataFrame(col_x_duplicates, columns=['col_x'])
Run Code Online (Sandbox Code Playgroud)
然后对原始数据进行联接:
pd.merge(new_df, df, on='col_x', how='left')
Run Code Online (Sandbox Code Playgroud)
现在这将大熊猫DF复制了N次,有没有更简单的方法?还是更快的方法?
给定一个向量v,我想创建一个所有行都等于的 2D numpy 数组v。做这个的最好方式是什么?必须有比使用 for 循环更快的方法来做到这一点。有像fill,ones和之类的函数zeros可以用一个值填充整个数组,但是用相同的值填充每一列,但每列的值不同呢?
我有一个数组,例如arr = [1, 2, 3, 4]、 和m = 3。我想制作一个包含m行的矩阵,重复该数组。该示例的输出将是
[[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4]]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?我尝试过
np.vstack((arr, arr, arr))
Run Code Online (Sandbox Code Playgroud)
然而,据我了解,这只有在我有效地硬核时才有效m。
我有一个与这篇文章有关的问题:"克隆"行或列向量.我试图解决那里发布的答案,但未能将它们应用到我的问题中.
就我而言,我想通过转换矩阵来"克隆"矩阵的每一行
A = [1,2; 3, 4; 5, 6]
Run Code Online (Sandbox Code Playgroud)
进入矩阵
B = [1, 2
1, 2
3, 4
3, 4
5, 6
5, 6]
Run Code Online (Sandbox Code Playgroud)
通过重复每一行A多次.
到目前为止,我能够repmat像单行一样工作
A = [1, 2];
B = repmat(A, 2, 1)
>> B = [1, 2
1, 2]
Run Code Online (Sandbox Code Playgroud)
我试图使用该公式构建循环,以获得所需的矩阵.循环看起来像
T = 3; N = 2;
for t = 1:T
for I = 1:N
B = repmat(C, 21, 1)
end
end
Run Code Online (Sandbox Code Playgroud)
有谁知道如何正确编写循环,或更好的方法来做到这一点?
我想构建两个二维数组
a = [[0, 0, 0, 0, 0, 0],
[1, 1, 1, 1, 1, 1],
[2, 2, 2, 2, 2, 2],
[3, 3, 3, 3, 3, 3],
[4, 4, 4, 4, 4, 4],
[5, 5, 5, 5, 5, 5]]
b = [[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5]]
Run Code Online (Sandbox Code Playgroud)
但我不能使用 for 循环。我知道我可以使用 …
我有一个浮动列表:
[1.0, 2.0, 3.0, 4.0]
Run Code Online (Sandbox Code Playgroud)
如何将此列表重塑为多维数组,例如:
[[1.0, 1.0, 1.0], [2.0, 2.0, 2.0], [3.0, 3.0, 3.0], [4.0, 4.0 ,4.0]]
Run Code Online (Sandbox Code Playgroud)
不使用循环?是否可以使用numpy或任何其他?