【问题标题】:Python append/concatenate numpy arrayPython追加/连接numpy数组
【发布时间】:2018-09-28 19:07:50
【问题描述】:

我已经开发了一个代码来读取所有特定文件并保存为 numpy 格式,例如

     [[1 2]
      [3 4]
      [5 6]] 

但是在我的代码中,numpy 数组返回空,谁能帮我解决它?谢谢。

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import GaussianNB
import numpy as np
list1=np.array([])
for x in range(101563,103807):
try:
    x=str(x)
    X=open("auto"+x)
    count_vect = CountVectorizer()
    X_train_counts = count_vect.fit_transform(X)
    X=X_train_counts.shape
    X=np.array([[X[0],X[1]]])
    list1=np.append(list1,X, axis=0)
except:
    y=x

【问题讨论】:

  • 所以你的文件没有扩展名?
  • 不……你指的是哪种扩展?
  • .txt.csv 什么的?
  • 不,我的文件没有任何扩展名

标签: python arrays numpy append concatenation


【解决方案1】:

最好将值累积在一个列表中:

alist = []
for ... in range:
   ....
   alist.append(new_array)
arr = np.array(alist)

您已经在 X=np.array([[X[0],X[1]]]) 行中这样做了 - 给 array 一个列表列表。

np.append 很难正确使用。 np.array([]) 不是正确的起点。它很慢,因为它每次都在构建一个新数组。从好的方面来说,您正在使用轴参数,而不是尝试直接使用它。

请使用开放式try/except。它隐藏了编码错误。您可能会得到原始的list1,因为append 会引发错误,并且不会在循环中执行任何操作。

【讨论】:

    猜你喜欢
    • 2018-01-14
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 2017-05-27
    • 1970-01-01
    • 2016-04-08
    • 2014-11-03
    相关资源
    最近更新 更多