Обновление: проблема решена
Похоже, что-то не так с spyder, так как я продолжаю переупорядочивать строки программы снова и снова, и когда я запускаю программу, она работает. Когда я снова запускаю программу, она выдает мне кучу ошибок, а иногда ошибки нелогичны, например, неопределенные переменные. Это побудило меня продолжать перезапускать ядро, выходить из консоли IPython и переупорядочивать строки слишком много раз, пока исходный код не стал грязным и полным ошибок.
Проще говоря, я решил проблему, сначала открыв файл data / csv, а затем добавив переменные. После этого я определил функцию и вызвал ее в конце. Теперь я получаю желаемый результат.
Вот окончательный исходный код
import pandas as pd
from pandas import DataFrame
import csv
import random
import numpy as np
import random
# Accessing our own data
# use this if you have data in your computer==>fin = pd.read_csv('/home/aziz/Desktop/b6h.csv')
# or just use the list below
fin = [1, -3, -2, 8, 4, -5, 6, -7]
# Obtaining our own data as floats in lines
# DataIncomplete = (float(line) for line in fin['mv'])
DataIncomplete = (float(line) for line in fin)
# This is to structure our data properly
positive = [n for n in DataIncomplete if n >= 0.0001]
data = pd.DataFrame(np.array(positive))
# Measures the length of the data after excluding the negative numbers
Total_Range_of_Data = len(data)
# Measures the number of samples needed for our filtered data
Total_Number_of_Needed_Samples = Total_Range_of_Data/200
# Convert floats to integers
FixedNumber = int(Total_Range_of_Data)
# Speciies the required range based on the FixedNumber
for x in range(1, FixedNumber):
A_Random_Number = random.randint(1, int(Total_Number_of_Needed_Samples))
A_Slice = A_Random_Number * 1
StaEndSli = data[A_Slice:A_Slice + 200]
FixedRange = int(Total_Number_of_Needed_Samples)
'''
Defining the function, looping the program based
on the length of the data / 200 or any number of sample required
'''
def Grab(repeat):
for repeat in range(FixedRange):
print(StaEndSli)
Grab(FixedRange)
Есть ошибки, и код ниже не работает
Запись была обновлена еще раз.
Код теперь работает и выводит случайный фрагмент данных. Тем не менее, функция цикла все еще не работает. Когда я набираю print(StaEndSli)
, вывод не отличается, как положено.
В предыдущем исходном коде было много строк в неправильном порядке, поэтому я удалил его из поста, так как это совсем не выгодно
Я написал исходный код для случайного получения фрагментов из файла CSV. Программа использует функцию цикла для повторения процесса снова и снова в зависимости от длины переменной Total_number_of_needed_samples
.
Проблема в том, что код работает без ошибок, но ничего не выводит. Я считаю, что с порядком строк что-то не так.
вот исходный код:
import pandas as pd
from pandas import DataFrame
import csv
import random
import numpy as np
import random
def Repeating(GrabingRandomSamples, Total_Number_of_Needed_Samples):
for repeat in range(Total_Number_of_Needed_Samples):
print(StaEndSli = data[A_Slice:A_Slice + 200])
Repeating(GrabingRandomSamples)
# Accessing our own data
#fin = pd.read_csv('/home/aziz/Desktop/b6h.csv')
fin = [1, -3, -2, 8, 4, -5, 6, -7]
# Obtaining our own data as floats in lines
DataIncomplete = (float(line) for line in fin)
# This is to structure our data properly
positive = [n for n in DataIncomplete if n >= 0.0001]
data = pd.DataFrame(np.array(positive))
# Measures the length of the data after excluding the negative numbers
Total_Range_of_Data = len(data)
# Measures the number of samples needed for our filtered data
Total_Number_of_Needed_Samples = Total_Range_of_Data/200
FixedNumber = int(Total_Range_of_Data)
for x in range(1, FixedNumber):
A_Random_Number = random.randint(1, int(Total_Number_of_Needed_Samples))
A_Slice = A_Random_Number * 1
StaEndSli = data[A_Slice:A_Slice + 200]
print(StaEndSli)
Repeating( int(Total_Number_of_Needed_Samples))
print(StaEndSli)
Я думаю, что проблема в этой конкретной части кода, так как большая ее часть - просто куча рабочих переменных.
for x in range(1, FixedNumber):
A_Random_Number = random.randint(1, int(Total_Number_of_Needed_Samples))
A_Slice = A_Random_Number * 1
StaEndSli = data[A_Slice:A_Slice + 200]
print(StaEndSli)
Repeating( int(Total_Number_of_Needed_Samples))
Идея программы заключается в том, что я хочу получить доступ к CSV-файлу со многими экземплярами. Программа должна делать 3 вещи. 1- получает только положительные числа. 2 - случайные фрагменты подряд. 3 - это зацикливает случайную часть нарезки, скажем, 30 раз. Или согласно длине variable Total_number_of_needed_samples
.
Давайте предположим, что у нас есть 10000 экземпляров. Программа будет вырезать случайную выборку с последовательными экземплярами после исключения отрицательных чисел следующим образом.
Данные
:
:
:
123
-123
658
98
-25
-654
-456
-354
:
:
желаемый результат после исключения отрицательных чисел
123
658
98
Затем программа будет циклически повторять функцию с другими случайными выборками.