Найти - Пользователи
Полная версия: Проблема с переводом в другую систему счисления
Начало » Python для новичков » Проблема с переводом в другую систему счисления
1
omon3
В общем мне нужно чтобы записанные в массив числа, в десятеричной системе, были преобразованы в двоичную систему чтобы дальше в ней работать (преобразовать в вектор), но массивные числа, питон отказывается переводить хз почему(хотя просто числа переводит).

import numpy as np
import random

m = 5
n = 2
print (bin(m))
z = np.zeros()

for i in range (m):
for j in range(n):
z = random.randint(0,10)

print (bin(z))

Вот что пишет на последнюю строчку : “'numpy.float64' object cannot be interpreted as an integer”
terabayt
>>> import numpy as np
>>> m = 5
>>> n = 2
>>> z = np.random.randint(0, 10, (m, n))
>>> print z
[[2 2]
 [1 2]
 [7 3]
 [1 8]
 [7 2]]
>>> print np.vectorize(lambda x: np.binary_repr(x, width=4))(z)
[['0010' '0010']
 ['0001' '0010']
 ['0111' '0011']
 ['0001' '1000']
 ['0111' '0010']]
omon3
забыл написать что у меня 3 питон. На последнюю строчку ругается, что неправильный синтаксис print np.vectorize(lambda x: np.binary_repr(x, width=4))(z)
omon3
все, разобрался, поставил скобки, все заработало. Спасибо большое))
doza_and
omon3
все, разобрался,
omon3
исла, в десятеричной системе, были преобразованы в двоичную систему чтобы дальше в ней работать
У меня сильное подозрение что первое утверждение не верно, поскольку мне трудно представить какая дальнейшая работа требует файла заполненного массивом строк из нулей и единиц. Это нужно может для того чтобы посмотреть глазками где какие биты установлены при отладке алгоритмов и ни для чего более.

Думаю что для вас будет полезно если попробуете меня разубедить, описав дальнейшую вашу работу с этими строками.
omon3
мне нужно в итоге сделать программу считающую блоки замены в линейном криптоанализе.
doza_and
omon3
считающую блоки замены
Для этого есть побитовые операции. они будут работать на порядки быстрее чем запись строк в файл и последюущее чтение.
omon3
А можете пояснить причину не работы команды bin? И почему при использовании моего кода и кода terabayt в итоге не работает, ведь по идее не важно как мы заполнили сам массив, перевод его в двоичную систему происходит только в конце?

import numpy as np
import random
m = 5
n = 2
z = np.zeros()
for i in range (m):
for j in range(n):
z = np.random.randint(0,10)
print (z)
print (np.vectorize(lambda x: np.binary_repr(x, width=4))(z))

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB