【问题标题】:How do I get out of the second loop to increment my first loop in order to create two 2D arrays?如何退出第二个循环以增加我的第一个循环以创建两个 2D 数组?
【发布时间】:2021-12-04 08:53:26
【问题描述】:

上下文:

我从一个包含 20 多种车型的汽车数据框开始。然后我创建了一个包含每个模型出现次数的数组。现在我试图将出现次数少于 500 次的模型与出现 => 500 次的模型分离到两个不同的二维数组中。

我的代码:

unique_models, count_of_models = np.unique(my_data_frame["model"], 
return_counts=True)
print(unique_models, count_of_models)

[' A1' ' A2' ' A3' ' A4' ' A5' ' A6' ' A7' ' A8' ' Q2' ' Q3' ' Q5' ' Q7' ' Q8' ' R8' 
 ' RS3' ' RS4' ' RS5' ' RS6' ' RS7' ' S3' ' S4' ' S5' ' S8' ' SQ5' ' SQ7' ' TT'] 
[1347    1 1929 1381  882  748  122  118  822 1417  877  397   69   28   33   31     
 29   39    1   18   12    3    4   16    8  336]

representative_models = np.empty((0, 2), int)
other_models = np.empty((0, 2), int)

for models in unique_models:

    for counts in count_of_models:

        if counts < 500:

            other_models = np.append(other_models, np.array([[models, counts]]), axis=0)

        else:

            representative_models = np.append(other_models, np.array([[models, counts]]), axis=0)

        unique_models += 1

一切正常,除了一件小事。不知何故,unique_models += 1 增量不起作用,第二个 for 循环将继续使用相同的 unique_model 但增加其计数。

我想要回到第一个循环,增加模型,然后进入第二个循环并增加计数。

希望这足够清楚,谢谢:)

【问题讨论】:

    标签: python arrays numpy for-loop multidimensional-array


    【解决方案1】:

    在这里,您正在循环列表或数组unique_models

    for models in unique_models:
    

    unique_models += 1 毫无意义,当您尝试将int 添加到列表时应该会抛出错误。

    相反,您可以通过使用break 而不是unique_models += 1 来跳出内循环break,但是这将在第一次迭代后跳出循环。 您想要做的是同时遍历count_of_modelsunique_models,您可以使用zip

    for models, counts in zip(unique_models, count_of_models):
    
        if counts < 500:
    
            other_models = np.append(other_models, np.array([[models, counts]]), axis=0)
    
        else:
    
            representative_models = np.append(other_models, np.array([[models, counts]]), axis=0)
    

    【讨论】:

      猜你喜欢
      • 2013-08-04
      • 2021-05-26
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      相关资源
      最近更新 更多