首页 > 编程知识 正文

python将其他进制的数转为二进制,python读取二进制文件

时间:2023-05-06 07:21:16 阅读:164099 作者:2244

我明白了。 可以在数据指定的任意位置使用1创建列表,在其他位置使用0。 了解列表后,这可以由defbinary_data(data ) :轻松完成

return [1ifxindataelse0forxinrange (data [-1 ]1)

变成这样。 data=[ 1,2,4,5,9 ]

bindata=binary_data(data )

bindata

[ 0,1,1,0,1,1,0,0,0,1 ]

现在你要做的就是策划那个。 或者更好的步骤是二进制数据,所以step ) )看起来更好。 导入编号为NP

frommatplotlib.pyplotimportstep,show

efbinary_data(data ) :

return [1ifxindataelse0forxinrange (data [-1 ]1)

data=[ 1,2,4,5,9 ]

bindata=binary_data(data )

xaxis=NP.arange(0,data([-1]1) ) ) ) ) ) ) ) ) ) ) )。

yaxis=NP.Array(Bindata ) )。

step(Xaxis,yaxis ) )。

show () )

要绘制重叠在同一图表上的多个数据数组,请调整binary_data,例如defbinary_data(data )、yshift=0) :

return [ yshift1ifxindataelseyshiftforxinrange [-1 ]1]

现在,您可以通过设置yshift参数在y轴上移动数据数组。 e,g data=[ 1,2,4,5,9 ]

bindata1=binary_data(data )

bindata1

[ 0,1,1,0,1,1,0,0,0,1 ]

bindata2=binary_data(data,2 ) )。

bindata2

[ 2,3,3,2,3,3,2,2,2,3 ]

如果将data1、data2、data3重叠,则会变成这样。 导入编号为NP

frommatplotlib.pyplotimportstep,show

efbinary_data(data,yshift=0) :

return [ yshift1ifxindataelseyshiftforxinrange [-1 ]1]

data1=[ 1,2,4,5,9 ]

bindata1=binary_data(data1 )

x1=NP.arange(0,data1(-1 )1) ) )。

y1=NP.Array(bindata1 ) )。

dt a2=[ 1,4,9 ]

bindata2=binary _ data (data 2,2 ) )。

x2=NP.arange(0,data2(-1 )1) ) ) )。

y2=NP.Array(Bindata2) ) ) ) ) ) ) ) ) ) ) )。

data3=[ 1,2,8,9 ]

bindata3=binary _ data (data 3,4 ) )。

x3=NP.arange(0,data3(-1 )1) ) )。

y3=NP.Array(Bindata3) ) ) ) ) ) ) ) )。

step(x1,y1,x2,y2,x3,y3 ) ) )。

show () )

data=[ 1,2,4,5,9 ],

[ 1,4,9 ],

[ 1,2,8,9 ]

for shift,dinenumerate(data ) :

bindata=binary_data(d,2 * shift ) )

x=NP.arange(0,d[-1] 1) ) ) )。

y=NP.Array(Bindata ) )。

step(x,y ) )。

show () )

最后,如果您正在处理不同长度的数据数组(如[ 1,2 ]或[ 15,16 ] ),并且不喜欢在图中间消失的图,则可以再次调整binary_data ),强制将其范围设置为最大数据范围。 导入编号为NP

frommatplotlib.pyplotimportstep,show

defbinary_data(data,limit,yshift=0) :

return [ yshift1ifxindataelseyshiftforxinrange (limit ) ]

data=[ 1,2,4,5,9,12,13,14 ],

[1、4、10、11、20、21、22],

[1、2、3、4、15、16、17、18]

# find out the longest data to plot

limit=max([x[-1]1forxindata]

x=NP.arange(0,limit ) )。

for shift,dinenumerate(data ) :

bindata=binary_data(d,limit,2 * shift ) ) ) ) ) )0) 0

y=NP.Array(Bindata ) )。

step(x,y ) )。

show () )

编辑:您自己的binary_data (如果要执行从data到bindata的转换,而不是定义函数,则为numpy.zeros_like ),如@ImportanceOfBeingErnest建议的重叠时请注意: import numpy as np

frommatplotlib.pyplotimportstep,show

data=[ 1,2,4,5,9,12,13,14 ],

[1、4、10、11、20、21、22],

[1、2、3、4、15、16、17、18]

# find out the longest data to plot

limit=max([x[-1]1forxindata]

x=NP.arange(0,limit ) )。

for shift,dinenumerate(data ) :

y=NP.Zeros_like(x )

y[d]=1

# don't forget to shift

y =2*shift

step(x,y ) )。

show () )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。