gpt4 book ai didi

python-3.x - 在 python 中将文本文档转换为 ASCII 数字的 numpy 数组

转载 作者:行者123 更新时间:2023-12-04 16:00:04 25 4
gpt4 key购买 nike

我有一个包含字母、数字、空格和特殊字符等的大型纯文本文档 (UTF-8)。

我想将文本文档中的所有单个字符转换为数字,然后将文档表示为一个 numpy 数组。

我可以为此使用内置的 python ord() 函数吗?

我的理解是它返回一个表示字符的 Unicode 代码点的整数,但一次只接受一个字符,我想知道是否有更好的方法将大型文本文档转换为数字。

或者我可以使用 ord() 函数遍历整个文档吗?

编辑

我基本上就是想做这样的事情!但原生于 python https://www.browserling.com/tools/text-to-ascii

这是我目前拥有的

def convert_to_ascii(text):
return ",".join(str(ord(char)) for char in text)

with open('test.txt', 'r') as myfile:
data = myfile.read()

convert_to_ascii(data)

values = [int(i) for i in x.split(',')]

array = np.array(values)

有更好的方法吗?

最佳答案

您应该跳过 ",".join() 部分,因为这里没有必要。

相反,您可以在 convert_to_ascii() 函数中简单地创建 values 列表:

def convert_to_ascii(text):
return [ord(char) for char in text)

values = convert_to_ascii(data)
array = np.array(values)

但是,即使是中间列表也是不必要的,因为可以从可迭代对象构造 numpy 数组。如果您提前知道长度,它可以有效地做到这一点。你做到了:这是字符串的长度。因此:

def convert_to_ascii(text):
for char in text:
yield ord(char)

array = np.fromiter(convert_to_ascii(data), count=len(data))

并且这个convert_to_ascii 函数可以替换为对内置map 函数的调用:

array = np.fromiter(map(ord, data), count=len(data))

顺便说一下,如果您的文件是用 UTF-8 编码的,您可能应该使用 encoding="utf-8" 参数打开文件以确保。默认值取决于平台/语言环境。

关于python-3.x - 在 python 中将文本文档转换为 ASCII 数字的 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50780081/

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