【问题标题】:How to make arrays of same size in Python如何在 Python 中创建相同大小的数组
【发布时间】:2017-01-24 12:53:05
【问题描述】:

我想知道是否有一种“简单”的方法来创建两个匹配的数组,在两个数组中插入一些虚拟缺失值,以便它们保持相同的大小,并且两个数组中相同的索引保持不变,例如:

["A", "B", "C", "D", "E", "F"]["B", "C", "E"]

["A", "B", "C", "D", "E", "F"]["N/A", "B", "C", "N/A", "E", "N/A"]

提前致谢:-)

【问题讨论】:

  • 没有“简单的方法”,有一些算法可以解决问题。您是否尝试过编写这样的算法来解决问题?如果是,请出示您的代码。
  • Helo ForceBru,也许我说错了,我已经解决了这个问题:a = [1,2,3,4,5] b = [1,3,5] c = [] for el in a: if el in b: c.append (el) else: c.append (0) print (c)
  • 请不要在 cmets 中发布代码,而是将其添加到问题中。

标签: python arrays concatenation


【解决方案1】:

列表理解中的单行代码:

array_1 = ["A", "B", "C", "D", "E", "F"]
array_2 = {"B", "C", "E"}

array_3 = [x if x in array_2 else "N/A" for x in array_1]

print(array_3)

结果:

['N/A', 'B', 'C', 'N/A', 'E', 'N/A']

请注意,我将 array_2 转换为 set 以便更快地查找。

【讨论】:

    【解决方案2】:
    array_1 = ["A", "B", "C", "D", "E", "F"] 
    array_2 = ["B", "C", "E"]
    
    array_3 = array_1
    
    for n,x in enumerate(array_3):
    
        if x not in array_2:
    
            array_3[n] = np.nan
    
    print (array_3)
    

    出来:

    [nan, 'B', 'C', nan, 'E', nan]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 2020-02-20
      • 2020-02-07
      • 1970-01-01
      • 1970-01-01
      • 2021-01-04
      相关资源
      最近更新 更多