首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在numpy.array和字节之间转换字符串

如何在numpy.array和字节之间转换字符串
EN

Stack Overflow用户
提问于 2022-07-02 12:11:10
回答 1查看 52关注 0票数 0

我想先将字符串转换为字节,然后将其转换为numpy数组:

代码语言:javascript
运行
复制
utf8 string -> bytes -> numpy.array

然后:

代码语言:javascript
运行
复制
numpy.array -> bytes -> utf8 string

下面是一个测试:

代码语言:javascript
运行
复制
import numpy as np

string = "any_string_in_utf8: {}".format(123456)

test = np.frombuffer(bytes(string, 'utf-8'))
print(test)

这是输出:

代码语言:javascript
运行
复制
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/tmp/ipykernel_9055/3077694159.py in <cell line: 5>()
      3 string = "any_string_in_utf8: {}".format(123456)
      4 
----> 5 test = np.frombuffer(bytes(string, 'utf-8'))
      6 print(test)

ValueError: buffer size must be a multiple of element size

如何在numpy.arraybytes之间转换字符串

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-02 12:33:45

解决办法:

  • 在您的Problem中,主要的Code是您没有提到dtype。默认情况下,dtype被设置为Float,我们通常从String启动Conversion,这就是它抛出ValueError: buffer size must be a multiple of element size的原因。
  • 但是,如果我们将同样的转换为unsigned int,那么它就会工作,因为它不能解释Object。欲了解更多信息,请参阅以下提供的Code Snippet
代码语言:javascript
运行
复制
# Import all the Important Modules
import numpy as np

# Initialize String
utf_8_string = "any_string_in_utf8: {}".format(123456)

# utf8 string -> bytes -> numpy.array
np_array = np.frombuffer(bytes(utf_8_string, 'utf-8'), dtype=np.uint8)

# Print 'np_array'
print("Numpy Array after Bytes Conversion : -")
print(np_array)

# numpy.array -> bytes -> utf8 string
result_str = np.ndarray.tobytes(np_array).decode("utf-8")

# Print Result for the Verification of 'Data Loss'
print("\nOriginal String After Conversion : - \n" + result_str)

了解更多关于np.frombuffer():- 点击这里!的信息

代码语言:javascript
运行
复制
# Output of the Above Code: -
Numpy Array after Bytes Conversion : -
[ 97 110 121  95 115 116 114 105 110 103  95 105 110  95 117 116 102  56
  58  32  49  50  51  52  53  54]

Original String After Conversion : - 
any_string_in_utf8: 123456
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72838939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档