【问题标题】:iterating a numpy matrix, and assign its rows with information from other dataframe and numpy array迭代一个 numpy 矩阵,并为其行分配来自其他数据框和 numpy 数组的信息
【发布时间】:2021-07-14 07:06:21
【问题描述】:

我有一个矩阵,例如,定义为x_matrix = np.zeros(200,16) 遍历行,我需要为这个矩阵的每一行分配两个分量向量,a1 是一个有 10 个元素的数组,a2 是一个对应的属于 pandas 数据框 y_dataframe y_dataframe 的行的形状为 (200,6)

我可以按如下方式迭代矩阵。但我还需要 x_matrix 的行号来检索 y_dataframe 中的相应行。是否有其他方法可以迭代矩阵行,并使用如上所述的不同分量向量组合其行。

for row in x_matrix

【问题讨论】:

    标签: python pandas numpy scipy


    【解决方案1】:

    如果您希望使用np.repeat 和np.hstack,您可以不重复执行此操作:

    # assuming `a1` is shaped (10,) i.e. 1D array
    a1_repeated = np.repeat(a1[np.newaxis, :], 200, axis=0)
    
    x_matrix = np.hstack((a1_repeated, y_dataframe))
    

    我们首先通过[np.new_axis, :] 将a1 转换为形状为(10, 1) 的行向量,然后将repeat 转换为200 乘以逐行(axis=0)。最后我们horizo​​ntallystack这个(200, 10)形a1_repeated和y_dataframe得到一个形状数组(200, 16)。

    但如果你想迭代,enumerate 会为你提供你所在的索引:

    for row_number, row in enumerate(x_matrix):
        x_matrix[row_number] = [*a1, *y_dataframe.iloc[row_number]]
    

    其中y_dataframe.iloc[row_number] 等于您提到的a2,即一行数据框。

    【讨论】:

      猜你喜欢
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 2019-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多