后来发现,这样做愚昧了——ndarray各元素要求相同的数据类型——字符串进去了,数字也就废了,数字废了,还用numpy做什么,呵呵了……
在numpy.loadtxt()可以方便地将csv文件中的数字读入ndarray(默认数据类型float),但对字符串,则会报错(字符串无法转换成float)。解决方法之一是写转换器converters。而下面的尝试则是先用csv.reader将csv数据逐行读取成python的List,再用numpy.array()将其转换为二位ndarray。代码如下:
# -*- coding=utf-8 -*-
import numpy as np
import csv #需要加载numpy和csv两个包
csv_file=open('D:/scores.csv') #打开文件
csv_reader_lines = csv.reader(csv_file) #用csv.reader读文件
date_PyList=[]
for one_line in csv_reader_lines:
date_PyList.append(one_line) #逐行将读到的文件存入python的列表
date_ndarray = np.array(date_PyList) #将python列表转化为ndarray
print (date_ndarray[::-1,3]) #切个片试一下是否成功