函数不会将列表转换为np数组

时间:2019-07-23 19:44:19

标签: python numpy jupyter-notebook google-colaboratory

我正在尝试获取一个返回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)

0 个答案:

没有答案