将 CSV 文件的行和列转换为 numpy 数组

我有一个这样的 csv 文件:


       l1 p1 p2 p3 ... p784

1       ↑ ← - - r o w - - →

.       c ← - - r o w - - →

.       o ← - - r o w - - →

.       l ← - - r o w - - →

27454   ↓ ← - - r o w - - →


# rows: 27454 cols: 784

我想使用csv 模块将它转换成两个像这样的 numpy 数组......

l=[ ←, c, o, l, → ] #size: 27454

并且


r = [ [ ←, -, -, r, o, w, -, -, → ],

      [ ←, -, -, r, o, w, -, -, → ],

      [ ←, -, -, r, o, w, -, -, → ] ]

#size : (27454, 784)

此外,我想将r 数组#shape: (27454, 784)拆分为#shape: (27454, 28,28)


如何获得这些数组?


开满天机
浏览 204回答 1
1回答

Cats萌萌

做这个:(路径是您的 csv 文件的路径)fields = []rows = []with open(path, 'r') as csv_f:    csv_reader = csv.reader(csv_f)        rows = [r for r in csv_reader]    l = np.array([r[0] for r in rows])    i_ = np.array([r[1:] for r in rows])    i = np.array([np.array_split(r, 28) for r in i_])    i = i.astype(int)print(labels.shape)print(images.shape)print(l.shape)输出:(27454,)(27454, 784)(27454, 28, 28)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python