Python中合并两次迭代生成的含numpy数组的列表问题
解决两次迭代中numpy数组列表的合并问题
你当前的问题在于第二次迭代时已经把A覆盖成了迭代2的列表,执行A=A+A自然只会把当前的A(也就是迭代2的列表)和自身拼接,得到两个相同的迭代2数组。
要实现期望的合并效果,你需要保留第一次迭代的列表内容,再和第二次的列表合并,具体有两种常见方式:
方式一:保留第一次迭代的列表副本
import numpy as np # 迭代1:初始化并保存副本 A = [np.array([[1], [2], [3]])] A_iter1 = A.copy() # 保存第一次迭代的列表 # 迭代2:生成新的列表 A = [np.array([[1.3], [2.7], [3.5]])] # 合并两次迭代的列表 A = A_iter1 + A
执行后A的结果为:
[array([[1], [2], [3]]), array([[1.3], [2.7], [3.5]])]
方式二:迭代时直接追加元素(不覆盖原列表)
如果迭代过程中不需要每次重新赋值A,可以直接在原列表上追加新的numpy数组:
import numpy as np # 迭代1:初始化列表 A = [np.array([[1], [2], [3]])] # 迭代2:直接追加新的数组,而非重新赋值A new_array = np.array([[1.3], [2.7], [3.5]]) A.append(new_array)
最终A同样会得到你期望的输出结果。
内容的提问来源于stack exchange,提问作者user19862793
相关产品推荐
相关产品推荐

