python将矩阵转换为二进制版本(基本2)
原始问题 (正在寻找有关将矩阵中的整数转换为base=2的二进制版本的函数的帮助 我曾尝试使用python将矩阵转换为二进制版本(基本2),python,math,Python,Math,原始问题 (正在寻找有关将矩阵中的整数转换为base=2的二进制版本的函数的帮助 我曾尝试使用numpy.binary_repr,但它对矩阵不起作用 有什么建议/功能吗 (谢谢) 修正问题 这里的目标是创造 -500x50 2D阵列/以前称其为矩阵。在-1和+1之间随机化 -将其标准化为介于0和1之间 -乘以1000并取整 -通过获取其中的基2,使用固定的 10位大小 以下代码到目前为止 import numpy as np np.random.seed(seed=1) Weights = n
numpy.binary_repr
,但它对矩阵不起作用
有什么建议/功能吗
(谢谢)
修正问题
这里的目标是创造
-500x50 2D阵列/以前称其为矩阵。在-1和+1之间随机化
-将其标准化为介于0和1之间
-乘以1000并取整
-通过获取其中的基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))
假设您有一个
numpy
矩阵x
,您可以尝试:
np.array([np.binary_repr(a) for b in x for a in b]).reshape(x.shape)
例如:
将numpy作为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')
x=np.array([[1,2,3],[4,5,6])
np.数组([np.二进制表示(a)表示b中的b,表示b中的a])。重塑(x.shape)
#数组(['1','10','11'],
#['100'、'101'、'110']],dtype='您的问题不清楚。您实际使用的是Numpy矩阵还是普通的Numpy数组?这与请求库有什么关系?请发布一些示例代码,或者至少是您试图“二元化”的“矩阵”东西的一小部分(不是一个单词)。在Python中有几种表示矩阵的方法,解决方案将非常依赖于您使用的方法。(此外,这个问题实际上也不涉及太多数学问题,除非您想自己编写整数->二进制表示代码。)这不是一个.OTOH,我怀疑OP实际上没有使用Numpy矩阵。是的,确实如此。我将它解释为一个2D数组。如果它实际上是一个矩阵
,如果你只是将x
替换为np.array(x)
,上面的方法就行了。