Python;Преобразовать матрицу в бинарную версию (база 2) - PullRequest
0 голосов
/ 18 октября 2018

Оригинальный вопрос

(Нужна помощь с функцией преобразования целых чисел в матрице в бинаризованную версию с основанием = 2.

Я пытался использоватьnumpy.binary_repr однако это не будет работать для матрицы.

Любой совет / функции?

Спасибо)

Исправленный вопрос

Целью здесь является создание

-500x50 2D-массива / ранее называвшегося матрицей.Рандомизировано между -1 и + 1

-Нормировать его между 0 и 1

-Множить на 1000 и округлить

-Бинаризировать сгенерированный 2D-массив путем получения базы2 из них с фиксированным размером 10 битов

Код Ниже пока

import numpy as np

np.random.seed(seed=1)
Weights = np.random.uniform(low=-1.0, high=1.0, size=500*50)

Weights = reshape(Weights,(500,50)) 


print(Weights.shape)

#Normalise the Weights
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
Weights_Norm = scaler.fit_transform(Weights)
#print(Weights_Norm)

#Multiply by 1000 to get integers below 1000
Weights_Norm_1000=Weights_Norm*1000
#print(Weights_Norm_1000)

Weights_Norm_1000R= matrix.round(Weights_Norm_1000,0)
print(Weights_Norm_1000R)

Weight_int=Weights_Norm_1000R.astype(int)

x = np.array(Weight_int)
print(np.array([np.binary_repr(a) for b in x for a in b]).reshape(x.shape))

1 Ответ

0 голосов
/ 18 октября 2018

Предполагая, что у вас есть numpy матрица x, вы можете попробовать:

np.array([np.binary_repr(a) for b in x for a in b]).reshape(x.shape)

Например:

import numpy as np

x = np.array([[1,2,3],[4,5,6]])
np.array([np.binary_repr(a) for b in x for a in b]).reshape(x.shape)
#array([['1', '10', '11'],
#       ['100', '101', '110']], dtype='<U3')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...