用于使用间隙和边边界进行切片的numpy语法

2024-09-30 20:17:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个单词语料库的numpy数组,我试图找到一个以窗口大小为参数的共现矩阵,这样从I-window\u大小到I+window\u大小的每个单词,除了单词本身,我都有一个被添加的共现计数。我目前正在使用两个循环

words, num_words = distinct_words(array)
M = None
word2Ind = {}


M = np.zeros((num_words,num_words))
word2Ind = {word:words.index(word) for word in words}


for index,word in enumerate(array):
    for i in range(index-window_size,index):
         M[word2ind(array[index-i]),word2ind(array[index])] += 1

for index,word in enumerate(array):
    for i in range(index+1,index+window_size+1):
         M[word2ind(array[index+i]),word2ind(array[index])] += 1

问题还在于,我不知道如何在边界上无缝地处理边缘情况,因为对于范围(0,窗口大小)和范围(len(数组),len(数组)-窗口大小,-1)中的I,我们不会拥有整个范围。只是想知道一些有效的方法


Tags: inforsizeindexrange数组window单词