Python Numpy ValueError: data type must provide an itemsize


天朝網絡鎖國,百度找了半個小時找不出來原因,只能谷歌

谷歌第一條就是,頓時感覺幸福感來的太突然

 

原因是輸入的矩陣均是字符串(從文件里讀的)

那么就需要批量轉數組,一行一行的轉。

下面是我的代碼:

 

rownum = 0
f = open(train_Y_path)
for line in f.readlines():
    train_Y_matrix[rownum] = map(float,line.strip('\n ').split(' '))
    rownum += 1
print train_Y_matrix

其中將每一行的float切分 返回string的數組后再轉化為float

這么做有個缺點,是返回的是list,針對二維數組初始化是用的

train_Y_matrix = [[0 for col in range(n_outs)] for row in range(train_rows)]

這種方法而寫的。

那么我們要的是矩陣運算,numpy里面的narray提供了良好的封裝

 

我們應該這么寫

train_X_matrix = numpy.empty((train_rows,n_ins),numpy.float64)
for line in f.readlines():
    train_X_matrix[rownum] = numpy.asarray(line.strip('\n ').split(' '), dtype=float)
    rownum += 1

這樣就可以按照numpy array的方式來操作這個數組了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM