Python 3.x I';我在使用numpy和处理列表时遇到了麻烦

Python 3.x I';我在使用numpy和处理列表时遇到了麻烦,python-3.x,numpy,Python 3.x,Numpy,这段代码逐行读取CSV文件并计算每个Unicode上的数字,但我无法理解下面代码的两部分。我已经在谷歌上搜索过,但我找不到答案。你能给我一些建议吗 1) 为什么我应该在这里使用numpy而不是[] emoji_time = np.zeros(200) 2) -1是什么意思 emoji_time[len(emoji_list)-1] = 1 ``` 这是代码结果: 0x100039, 47, 0x10002D, 121, 0x100029, 30, 0x100078, 6, 1)

这段代码逐行读取CSV文件并计算每个Unicode上的数字,但我无法理解下面代码的两部分。我已经在谷歌上搜索过,但我找不到答案。你能给我一些建议吗

1) 为什么我应该在这里使用numpy而不是[]

emoji_time = np.zeros(200) 
2) -1是什么意思

emoji_time[len(emoji_list)-1] = 1 ``` 
这是代码结果:

0x100039, 47, 
0x10002D, 121, 
0x100029, 30, 
0x100078, 6, 
1) 如果使用列表而不是numpy数组,则在这种情况下,结果不应更改。您可以自己尝试运行相同的代码,但将
emoji_time=np.zero(200)
替换为
emoji_time=[0]*200


2)
emoji\u时间[len(emoji\u列表)-1]=1
。这一行的作用如下:如果一个表情符号第一次出现,则1被添加到
emoji\u time
,该列表包含一个表情符号出现的次数
len(emoji_list)-1
用于设置
emoji_time
中的位置,它基于
emoji_list
的长度(只需要减去1,因为python中的列表索引从0开始)。

感谢您的详细解释!我也用这个URL检查了它们以理解它们。
unicode_count.py

import codecs
import re
import numpy as np
​
file0 = "./message.tsv"
f0 = codecs.open(file0, "r", "utf-8")
list0 = f0.readlines()
f0.close()
print(len(list0))
​
len_list = len(list0)
emoji_list = []
emoji_time = np.zeros(200)
​
for i in range(len_list):
  a = "0x1000[0-9A-F][0-9A-F]"
  if "0x1000" in list0[i]:   # 0x and 0x1000: same nuumber
    b = re.findall(a, list0[i])
#    print(b)
    for j in range(len(b)):
      if b[j] not in emoji_list:
        emoji_list.append(b[j])
        emoji_time[len(emoji_list)-1] = 1
      else:
        c = emoji_list.index(b[j])
        emoji_time[c] += 1
print(len(emoji_list))