Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Python: научные вычисления

Войти
Регистрация
Восстановить пароль
 
AndreyRaf
1 / 1 / 0
Регистрация: 16.09.2016
Сообщений: 14
#1

Сохранение данных функции random numpy - Python

04.01.2017, 11:09. Просмотров 251. Ответов 5

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# -*- coding: utf-8 -*-
import numpy as np
 
xs=[]
file1=open("D:\genetic_alg\data_xs.txt","w")
file2=open("D:\genetic_alg\data_coefs.txt","w")
for big_let in range(65,91):
    xs.append(chr(big_let))
for small_let in range(97,123):
    xs.append(chr(small_let))
[B]coefs=np.random.randint(0,100,len(xs))[/B]
for elem in xs:
    file1.write(str(elem)+"\n")
for el in coefs:
    file2.write(str(el)+"\n")
Надо сделать так, чтобы значения coefs, которые я передаю в файл, не менялись при повторном запуске программы. Не могу понять, как это реализовать. При каждом запуске появляются новые значения в файле. Помогите пожалуйста. Заранее спасибо за помощь.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2017, 11:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сохранение данных функции random numpy (Python):

Numpy.matrix и функции - Python
Доброго времени суток. Возникла такая проблема с Python-ом: в нижеприведенном коде создаются две матрицы - L и L_v, далее необходимо...

Random и повторении Функции, нужен совет! - Python
Пишу для себя(в учебных целях) программку :) но не могу понять как сделать код более компактным и красивым. первый вопрос - у меня...

Numpy - Python
1.Решить уравнение через for цикл и функция arrange() x2+4x-32=0 (дискриминант) это задача(Numpy) 2. Дан такой программа import...

Умножение numpy - Python
Всем привет, может кто подсказать по numpy: есть массивы numpy X = np.array() l1_delta = np.array() syn0 = np.random.random((2,1)) ...

Подключение NumPy - Python
Работаю на Windows. На сайте библиотеки NumPy есть инструкция установки их продукта через гитхаб: git clone...

Numpy array - Python
Пытаюсь разобраться с такой штукой, как numpy. Вот что-то не очень получается с ним работать.. Напишите функцию, принимающую на вход...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
dondublon
Заблокирован
04.01.2017, 17:35 #2
Краткий ликбез.
1.
Цитата Сообщение от AndreyRaf Посмотреть сообщение
for big_let in range(65,91):
Для этого существует np.arange.

2.
Цитата Сообщение от AndreyRaf Посмотреть сообщение
for big_let in range(65,91):
* * xs.append(chr(big_let))
Можно использовать такой приём:
Python
1
2
xs = np.arange(...).astype(np.uint8)
xs.dtype = np.dtype('S1')
3. Для слияния двух массивов можно использовать np.hstack.
Ну и наконец:
Цитата Сообщение от AndreyRaf Посмотреть сообщение
значения coefs, которые я передаю в файл, не менялись при повторном запуске программы.
Они ж у вас случайные. Конечно, будут меняться. Хотите сохранить - сохраняйте. Может, в файл, может, захардкодить.

Добавлено через 1 минуту
Да, вдогонку.
4.
Цитата Сообщение от AndreyRaf Посмотреть сообщение
for elem in xs:
* * file1.write(str(elem)+"\n")
Для сохранения есть np.savetxt .
1
AndreyRaf
1 / 1 / 0
Регистрация: 16.09.2016
Сообщений: 14
04.01.2017, 19:25  [ТС] #3
спасибо за то, что указали на ошибки. Буду исправляться
0
vrm2
242 / 149 / 32
Регистрация: 03.12.2015
Сообщений: 238
Завершенные тесты: 1
09.01.2017, 17:53 #4
Цитата Сообщение от AndreyRaf Посмотреть сообщение
Надо сделать так, чтобы значения coefs, которые я передаю в файл, не менялись при повторном запуске программы. Не могу понять, как это реализовать. При каждом запуске появляются новые значения в файле. Помогите пожалуйста. Заранее спасибо за помощь.
Случайные числа, которые генерирует python (и numpy) являются псевдослучайными. Они вычисляются по определенной формуле из предыдущего сгенерированного числа. Самое-самое первое сгенерированное число называется seed.

Обычно seed формируется из текущего времени (чтобы добавить некую случайность). А дальше числа генерируются по заданному алгоритму. Но Вы можете установить seed самостоятельно (например 0). И тогда Ваша "случайная" последовательность будет все время повторяться, пока Вы не уберете явную установку seed.

Используйте numpy.random.seed для задания seed.

Примеры использования:
http://stackoverflow.com/questions/2...andom-seed0-do
0
dondublon
Заблокирован
10.01.2017, 12:59 #5
vrm2, думаю, не стоит на такое полагаться.
0
vrm2
242 / 149 / 32
Регистрация: 03.12.2015
Сообщений: 238
Завершенные тесты: 1
10.01.2017, 13:48 #6
Цитата Сообщение от dondublon Посмотреть сообщение
vrm2, думаю, не стоит на такое полагаться.
Смотря для каких целей, конечно. Но функция документированная, поддерживается обратная совместимость, так что все ок.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2017, 13:48
Привет! Вот еще темы с ответами:

NumPy ValueError - Python
import numpy as np n = 5 A = np.zeros((n,n), dtype=np.int_) for i in range(n): A=int(input("A: ")) N = len(A) for i in...

NumPy, Matplotlib - Python
Доброго времени суток, дорогие форумчане! Прошу прощения за такой тривиальный вопрос! Но, как я начинающий в Python, то хотелось бы у...

NumPy и PyCharm - Python
Доброго времени суток, мне нужно установить NumPy для работы с массивами. Я использую среду PyCharm, при попытке установить возникают...

Установка numpy - Python
Вопрос от новичка в python.Установил pycharm и интерпретатор cpython для него. Смог скомпилировать простейшие программы. Однако возникла...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.01.2017, 13:48
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru