Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python将矩阵转换为二进制版本(基本2)_Python_Math - Fatal编程技术网

python将矩阵转换为二进制版本(基本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

原始问题

(正在寻找有关将矩阵中的整数转换为base=2的二进制版本的函数的帮助

我曾尝试使用
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)
,上面的方法就行了。