【发布时间】:2020-04-29 18:20:59
【问题描述】:
我编写了一个代码,它将使用 CSV 比较数组中的字符串。 这是示例数据集
Doc Cited_Doc
A B | F | G
B V | T
C A | O | U | P | M
这是我的代码
Input = np.loadtxt('C1_100.csv', delimiter=',' , dtype='unicode')
NumOfDoc = len(Input[:,1])
NumOfCol = len(Input[1,:])
for i in range(1, NumOfDoc):
Cited = Input[:,1]
Citing = Input[:,0]
bb=1
for i in range(1, NumOfDoc):
for j in range(1, NumOfDoc):
#aa = np.core.defchararray.equal(Citing, Cited)
aa = np.isin(Citing, Cited)
CitingCited = []
if np.all(aa!=0):
if bb==1:
#CitingCited = [Citing[j],Citing[i]]
a = np.core.defchararray.add(Citing[j], Citing[i])
CitingCited.append(a)
if bb>1:
#CitingCited[bb,1]= Citing[j]
#CitingCited[bb,1]= Citing[j]
CitingCited.append(Citing[j])
CitingCited.append(Citing[j])
bb=bb+1
print('CitingCited')
比较后我尝试打印aa,结果返回
array([True,True,False])
当我打印 CitingCited 时,返回结果
[]
但我希望在打印 CitingCited 时看到结果(返回 True 的结果)
a = np.core.defchararray.add(Citing[j], Citing[i])
CitingCited.append(a)
喜欢这个
Doc Cited_Doc
A C
B A
有什么建议吗?
【问题讨论】:
-
变量和函数名称应遵循
lower_case_with_underscores样式。为什么要使用这个 NumPy?此外,引用文档,chararray 类的存在是为了向后兼容 Numarray,不建议用于新开发。从 numpy 1.4 开始,如果需要字符串数组,建议使用 dtype object、string 或 unicode 数组,并使用 numpy.char 模块中的 free 函数进行快速向量化字符串操作。 -
我正在使用 numpy,因为我听说它比 pandas 运行得更快。
-
你从哪里听到的?性能是一个复杂的话题,我认为 NumPy 和 Pandas 一开始都不是竞争对手。你能分享一下你的数据是什么样子的吗?
-
我从朋友那里听说的。我的数据看起来就像我写的那样。它有 2 列,一列是主文档,第二列是引用文档列表
-
我的数据看起来和我写的一样。它有 2 列,一列是主文档,第二列是引用文档列表我只是想检查格式,它们是字母数字字符串吗?
标签: python arrays string numpy compare