Как решить "Indexerror: слишком много индексов для массива" при импорте данных из блокнота - PullRequest
0 голосов
/ 29 марта 2020

Я импортирую два столбца данных из блокнота и пытаюсь построить их. Первый столбец значений данных (угол) составляет от 10 до 110 с шагом 0,1, а второй столбец (интенсивность) имеет одно значение для каждого соответствующего приращения угла. Ошибка происходит из строки x = data_file [0 ,:].

, и в соответствии с запросом приведены некоторые строки файла .dat:

10.0    0.0
10.1    0.0
10.2    0.0
10.3    0.0
10.4    0.0
10.5    0.0
10.6    0.0
10.7    0.0
10.8    0.0
10.9    0.0
11.0    0.0
11.1    0.0
11.2    0.0
11.3    0.0
11.4    0.0
11.5    0.0
11.6    0.0
11.7    0.0
11.8    0.0
11.9    0.0
12.0    0.0
12.1    0.0
12.2    0.0
12.3    0.0
12.4    0.0
12.5    0.0
12.6    0.0
12.7    0.0
12.8    0.0
12.9    0.0
13.0    0.0
13.1    0.0
13.2    0.0
13.3    0.0
13.4    0.0
13.5    0.0
13.6    0.0
13.7    0.0
13.8    0.0
13.9    0.0
14.0    0.0
14.1    0.0
14.2    0.0
14.3    0.0
14.4    0.0
14.5    0.0
14.6    0.0
14.7    0.0
14.8    0.0

и

import numpy as np
import matplotlib.pyplot as plt

data_file = np.genfromtxt('practice_data_py18ea.dat',delimiter = 'none')

x = data_file[0,:]
y = data_file[1,:]

plt.plot(x, y)
plt.xlabel('Two Theta')
plt.ylabel('Counts per Second')
plt.title('Counts vs Two Theta')
plt.show()

data_file.close()

1 Ответ

0 голосов
/ 29 марта 2020

С примером вашего текста:

In [44]: txt="""10.0    0.0 
    ...: 10.1    0.0 
    ...: 10.2    0.0 
    ...: 10.3    0.0 
    ...: 10.4    0.0 
    ...: 10.5    0.0 
    ...: 10.6    0.0 
    ...: 10.7    0.0 
    ...: 10.8    0.0""".splitlines()                                                           
In [45]: data = np.genfromtxt(txt)            # delimiter=None does the same thing                                                 
In [46]: data.shape                                                                            
Out[46]: (9, 2)

Индексирование с [0,:] неверно

In [49]: x = data[:,0]                                                                         
In [50]: x.shape                                                                               
Out[50]: (9,)
In [51]: x                                                                                     
Out[51]: array([10. , 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...