gpt4 book ai didi

python - 以二进制形式保存 python 操作

转载 作者:太空宇宙 更新时间:2023-11-04 01:35:29 25 4
gpt4 key购买 nike

使用 numpy 并尝试以二进制形式打印矩阵:

import numpy

G=numpy.matrix('100011;010101;001110')

H = numpy.matrix('011100;101010;110001')

print G
print H

返回

[[100011]
[ 4161]
[ 584]]
[[ 4672]
[101010]
[110001]]

我怎样才能将我的矩阵保存为二进制并同时以二进制进行矩阵运算?谢谢。

最佳答案

“二进制”是指“ bool 值”吗? (为什么你在世界上使用你正在使用的语法??)

import numpy as np

g = np.array([[1, 0, 0, 0, 1, 1],
[0, 1, 0, 1, 0, 1],
[0, 0, 1, 1, 1, 0]], dtype=bool)

h = np.array([[0, 1, 1, 1, 0, 0],
[1, 0, 1, 0, 1, 0],
[1, 1, 0, 0, 0, 1]], dtype=bool)

至于区别,请考虑1 + 1。在二进制中,您将得到 2 (0b10)。在 bool 表示中,您将得到 1

因此,如果您希望 [0, 1] + [0, 1] 成为 [1, 0],那么您需要二进制。如果您希望它是 [0, 1],那么您希望它是 bool 值。

类似地,如果你希望 [1, 1] + [1, 0][1, 0, 1],那么你希望它是二进制的.如果您希望它是 [1, 1],那么您希望它是 bool 值。

作为您提到的一些操作的示例(使用 bool 值):

print 'g * h ...'
print g * h

print 'g * h viewed as integers...'
print (g * h).view(np.int8) # or x.astype(int), but the latter makes a copy

a = np.array([1, 1, 0], dtype=bool)
print 'Matrix multiplication of [1, 1, 0] with g...'
print a.dot(g) # Or we could do g.T.dot(a)

这会产生:

g * h ...
[[False False False False False False]
[False False False False False False]
[False False False False False False]]

g * h viewed as integers...
[[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]]

Matrix multiplication of [1, 1, 0] with g...
[ True True False True True True]

关于python - 以二进制形式保存 python 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10272304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com