我正在尝试获取一个返回numpy数组的函数。该函数搜索一个数组,该数组的每个元素是一个包含英语短语及其德语翻译的2元素列表(即[[eng-phrase, ger-phrase], [eng-phrase, ger-phrase], ...]
当找到具有所需单词数的德语短语时,它将对添加到列表中,并在找到所需数量的实例后返回。因此,返回值应为[[eng-phrase, n-gram ger-phrase], [eng-phrase, n-gram ger-phrase], ...]
我似乎无法弄清楚如何使函数作为数组返回。如果我将列表n_grams
包装在np.asarray()
中,它仍会返回一个列表。但是,如果我将函数调用包装在np.asarray
中,那么它似乎可以正常工作。
所以这给了我一个所需的numpy数组:
five_grams = np.asarray(find_ngrams(5, d))
但是从函数中创建此return语句并不能:
return np.asarray(n_grams)
我正在Google Colab的Jupyter笔记本中进行此操作。
def find_ngrams(size, data, how_many=3):
"""Finds n_grams in the phrase pairs"""
n_grams = list()
counter = 0
for i, pair in enumerate(data):
if len(pair[1].split()) == size:
n_grams.append(data[i])
counter += 1
# Return if we have all we need
if counter == how_many:
return n_grams
return np.asarray(n_grams)