Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
 Аватар для vikusechk
1 / 1 / 0
Регистрация: 16.03.2014
Сообщений: 107

Хранение в массиве float и int

24.09.2015, 12:04. Показов 6581. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В массиве X нужно заменить первый элемент каждой строки на тип float. Остальные же элементы должны остаться int (1 или 0). Делаю это с помощью:
Python
1
2
for k in range(len(X)):
        X[k][0] = float(X[k][0])
Но заменяются на float все элементы массива. Как это можно исправить?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#Заменить все 0. и 1. на int
 
#!/usr/bin/env python2
 
import numpy as np
from sklearn import tree
from sklearn.tree import DecisionTreeClassifier
 
X = []
y = []
 
for line in open("ddd.data"):
    line = line.split('\t')
    X.append(map(str,line))
    for j in range(len(line)):
        for i in range(len(X)):
            if X[i][j] == 'yes':
                X[i][j] = 1
            elif X[i][j] == 'no':
                X[i][j] = 0
            if X[i][j] == 'yes\n':
                X[i][j] = 1
            elif X[i][j] == 'no\n':
                X[i][j] = 0
    for k in range(len(X)):
        X[k][0] = float(X[k][0])
 
X = np.array(X)
 
XX = X[:,[0,1,2,3,4,5,6]]
YY = X[:,7]
 
for size in range(6,10):
 
    Xlearn = XX[:len(XX)/10*size]
    Ylearn = YY[:len(YY)/10*size]
 
    Xtest = XX[len(XX)/10*size:]
    Ytest = YY[len(YY)/10*size:]
 
    clf = DecisionTreeClassifier(max_depth=3).fit(Xlearn, Ylearn)   
 
    filename = "dtree" + str(size) + ".dot"
 
    with open(filename, 'w') as f:
        f = tree.export_graphviz(clf, out_file=f)
 
    Ypredicted = clf.predict(Xtest) 
 
    rP = 0
    wP = 0
 
    for i in range(len(XX)/10*(10-size)):
        if Ypredicted[i] == Ytest[i]:
            rP += 1
        else:
            wP += 1
 
    print "TEST SIZE: ", size*10, "%"
    print "right: ", rP
    print "wrong: ", wP
    print "accuracy: ", float(rP)/(rP+wP)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.09.2015, 12:04
Ответы с готовыми решениями:

ОШИБКА [Error] cannot convert 'int*' to 'float*' for argument '1' to 'void Syma(float*,int*,int)
Какая то проблема с указателями,незнаю,не хочет щитать суму парних чисел в второй подпрограме.Извиниет за ошибки.Не владею руским.Помогите...

Перевод Int/FLoat -> QByteArray -> Int/Float
Есть задача переводить float/int данные в бинарный вид и обратно (в последующем для передачи по сети или записи в бинарные файлы, формат...

Функции float average(int arrray[],int from,int to)
Напишите код функции float average(int arrray,int from,int to). Возвращаемым значением функции должно быть среднее значение элементов...

5
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
24.09.2015, 13:06
Цитата Сообщение от vikusechk Посмотреть сообщение
В массиве X нужно заменить первый элемент каждой строки на тип float. Остальные же элементы должны остаться int (1 или 0).
можете написать пример входных данных и пример результата?
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
24.09.2015, 13:42
vikusechk, На мой взгляд у Вас проблемы с отступами начиная с 15 строки. По логике это отдельные операции, не связанные с прочтением строк, так как Вы в них работаете со списком Х и получается что Вы каждый раз прогоняете через список при каждой новой строке.

Добавлено через 4 минуты
И вообще, если Вам надо поменять "yes" на 1, а "no" на 0 почему не воспользоваться методом replace сразу к прочтенной строке, а не выковыривать их потом из списка?
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
25.09.2015, 08:40
Массив по определению содержит однотипные данные, в отличие от списка.
Вы используете список Х, преобразовывая его в массив в конце, после чтения файла. Да и само чтение - очень много лишних телодвижений.
Советую использовать numpy.loadtxt - сразу читает в numpy-массив. Правда, напоминаю, массив содержит однотипные данные.
0
 Аватар для vikusechk
1 / 1 / 0
Регистрация: 16.03.2014
Сообщений: 107
19.10.2015, 16:04  [ТС]
Jabbson, например, на входе у меня строка:
35,5 no yes no no no no no

На выходе должна получить:
35.5 0 1 0 0 0 0
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
19.10.2015, 16:13
Python
1
2
3
4
input = '35,5   no  yes no  no  no  no  no'
output = [float(input.split()[0].replace(',', '.'))]+[0 if x == 'no' else 1 for x in input.split()[1:]]
 
print(output) # print(*output) to get a string
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.10.2015, 16:13
Помогаю со студенческими работами здесь

Если результат деления int на int есть тип float
Есть две ситуации: int a = 10; int b = 3; c = a/b; // через несколько строчек тоже самое но с другими значениями int a =...

Почему при умножении разнотипных переменных (например, float и int) получается int?
Почему при умножении разнотипных переменных (float price и int unit) получается int? Это же не преобразование типов данных. Почему...

КВИТАНЦИЯ (номер – int, дата – int, сумма – float)
Помоги решить пожалуйста лабораторную работу, 13 варианта, буду очень признателен! очень срочно !

Программа подстановки числа в int, short int и float +1
Поступил называется на IT-шную специальность. Основы Си ставят в тупик. Спасибо заранее за ваше время. Ребят, как первокурсник бы написал...

Как происходит преобразование int<<float<int
Как происходит преобразование int&lt;&lt;float&lt;int int n=222222222; float f=(float)n; n=(int)f; n== 222222224; Почему в итоге...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru