我正在尝试用数组qn_red中的特定元素替换数组fre_index中的特定元素。这是我的代码。
index = []
freq = [201001, 201002, 201003, 201004,201005, 201006, 201007, 201008, 201009, 201010,
201011, 201012,201013, 201014, 201015, 201016]
freq_red = [201001.3, 201009.4, 201012.5]
qn_red = ['v', 'n', 'c']
for j in range(len(freq_red)):
for i in range(len(freq)-1):
if freq[i] <= freq_red[j] <= freq[i+1]:
index.append(i)
fre_index = np.arange(len(freq))
for j in range(len(index)-1):
for n, i in enumerate(fre_index):
if i == index[j]:
fre_index[n] = qn_red[j]
但是,我得到一个错误:
fre_index[n] = qn_red[j]
ValueError: invalid literal for long() with base 10: 'v'
如果我写
fre_index[n] = 34
代替
fre_index[n] = qn_red[j]
代码运行没有错误。
感谢下面的评论,我现在知道这是因为我试图在同一数组中混合字符串和整数。
我想要的输出是一个数组fre_index,它的长度与数组freq的长度相同,只有某些元素包含来自数组qn_red的字符串。
你能告诉我如何制作这样的数组吗?
答案 0 :(得分:0)
由于评论,我已经意识到解决方案是创建一个新变量
fre_index_str = ['']*len(fre_index)
然后做
fre_index_str[n] = qn_red[j]