Как сохранить значения из текстового файла в двумерный массив Numpy? - PullRequest
0 голосов
/ 03 ноября 2019

У меня есть набор данных в текстовом файле с 373 строками и 3 столбцами. Мой учитель попросил меня создать 2 массива. «Массив1» хранит все строки набора данных, для которых их третий столбец имеет значение 1, аarray2 'хранит каждую строку с номером 2 в column2. Массивы должны быть массивами. Я попытался «class1 = np.zeros (len (набор данных)). Reshape (len (набор данных) // 3,3)», но я получаю сообщение об ошибке: «ValueError: невозможно преобразовать массив размером 373 в форму (124,3) «Я перепробовал разные варианты. Но я не смог найти способ заставить 2D работать. Мне удалось сохранить столбец № 1 с обоими массивами с этим кодом:

'''
import numpy as np

dataset = np.loadtxt("first_attempt_dataset.txt")

class1 = np.zeros(len(dataset))
class2 = np.zeros(len(dataset))


for i in range(0,len(dataset)): 
  if dataset[i,2] == 1:  
    class1[i] = dataset[i][1]
  elif dataset[i,2] == 2:
    class2[i] = dataset[i][1]


class1 = class1[class1 != 0]  #delete the remained zeros from declaration
class2 = class2[class2 != 0]  

'''

Как я могу сохранить каждый столбец вместо 1?

1 Ответ

0 голосов
/ 03 ноября 2019

Я чувствую, что вы неправильно поняли вопрос от своего учителя. Вопрос в том, что «... массив1 хранит все строки набора данных, для которых их третий столбец имеет значение 1, ...», поэтому я бы сделал это так:

import numpy as np

a = np.array([[1,2,3], [3,2,1], [2,3,1], [2,1,3], [3,1,2]])
b = a[a[:,2]==1]
print(b)

результат:

[[3 2 1]
 [2 3 1]]

Как и во второй половине вопроса, вам нужно изменить номер столбца на 1.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...