Python中的[:,0]和[:,1]以及[1:]和[1,:]

目录

测试[1:]以及[1,:]

测试[:,0]以及[:,1]

测试[:0],[:1],[:2]

实际应用


先创建一个测试样例

import numpy as np
a= np.array([[0,1],[2,3],[4,5],[6,7],[8,9],[10,11],[12,13],[14,15],[16,17],[18,19]])
print(a)

输出结果为:

[[ 0  1]
 [ 2  3]
 [ 4  5]
 [ 6  7]
 [ 8  9]
 [10 11]
 [12 13]
 [14 15]
 [16 17]
 [18 19]]

测试[1:]以及[1,:]

print(a[1:])
print('------------')
print(a[1,:])

测试结果为:

[[ 2  3]
 [ 4  5]
 [ 6  7]
 [ 8  9]
 [10 11]
 [12 13]
 [14 15]
 [16 17]
 [18 19]]
------------
[2 3]

测试[:,0]以及[:,1]

print(a[:,0])
print('------------')
print(a[:,1])

测试结果为:

[ 0  2  4  6  8 10 12 14 16 18]
------------
[ 1  3  5  7  9 11 13 15 17 19]

[:,0]就是取所有行第0个数据[:,1]就是取所有行第1个数据

测试[:0],[:1],[:2]

print(a[:0])
print('------------')
print(a[:1])
print('------------')
print(a[:2])

测试结果为:

[]
------------
[[0 1]]
------------
[[0 1]
 [2 3]]

实际应用

在做知识图谱嵌入时,存好的数据存入dataset,再放入dataloader,然后转换成nump,通过[:,0]就可以取到所有头实体id

dataset = tripleDataset(posDataPath=args.validpath,
                            entityDictPath=args.entpath,
                            relationDictPath=args.relpath)
dataloader = DataLoader(dataset,
                        batch_size=len(dataset),
                        shuffle=False,
                        drop_last=False)
for tri in dataloader:
    tri=tri.numpy()
    print(tri)
    print('-------------')
    print(tri[:,0])
    exit()
[[ 6431    52   790]
 [  127   326  2874]
 [13176     3 12512]
 ...
 [ 6330     9  5895]
 [ 7895    26  4826]
 [  626   166  1240]]
-------------
[ 6431   127 13176 ...  6330  7895   626]

你可能感兴趣的:(代码,知识图谱验证,python,numpy,深度学习,nlp,知识图谱)