我知道这应该很简单,但我还是被困住了
我有两个等长数组a和b。有三个等长列表al1,al2,al3:其中我有这样的数对(a[I],b[I])=(al1[j],al2[j])。我把I和j的所有这些指数分别放在aindex和lindex中。我想创建另一个数组c(等于数组a的长度),其中包含来自al3的数字。你知道吗
参见代码:
import numpy as np
list1 = [9,7,8,2,3,4,1,6,0,7,8]
a = np.asarray(al)
list2 = [5,4,2,3,4,3,4,5,5,2,3]
b = np.asarray(bl)
al1 = [9,4,5,1,7]
al2 = [5,3,6,4,5]
al3 = [5,6,3,4,7]
lindex = [0,5,6]
aindex = [0,1,3]
index = np.asarray(aindex)
c = []
for i in range(0,len(list1)):
if i in aindex:
com = al3[i]
else:
com = 'nan'
c.append(com)
我得到的是
c = [5, 6, 'nan', 4, 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan']
我想要的是
c = [5, 'nan', 'nan', 'nan', 'nan', 6, 4, 'nan', 'nan', 'nan', 'nan']
请帮忙:-/
我必须承认我不知道你在做什么,但你似乎想要的是:
它们的工作方式是首先将
c
初始化为包含所有nan
的长度a
的列表:zip
所做的是将每个列表的元素配对在一起:所以我遍历每一对,取第一个索引处的
al3
值,并将其赋给第二个索引处的c
。任何未分配的都会保留'nan'
。你知道吗相关问题 更多 >
编程相关推荐