python定义字符数组_ASCII字符串作为Python 3中numpy字符串数组的dtype

NumPy的字符串dtype似乎对应于

Python的str,因此在

Python 2.x和3.x之间进行更改:

在Python 2.7中:

In [1]: import numpy as np

In [2]: np.dtype((np.str_, 1)).itemsize

Out[2]: 1

In [3]: np.dtype((np.unicode_, 1)).itemsize

Out[3]: 4

在Python 3.3中:

In [2]: np.dtype((np.str_, 1)).itemsize

Out[2]: 4

两种情况下,NumPy的版本均为1.7.0.

我正在编写一些我想在两个Python版本上工作的代码,我想要一个ASCII字符串数组(4x内存开销是不可接受的).所以问题是:

>如何在Python 3中为特定长度的ASCII字符串定义dtype(每个字符1个字节)?

>我如何以同样适用于Python 2的方式实现?

>奖金问题:我可以进一步限制字母表,例如到ascii_uppercase,每个字符保存一两个?

我认为可能的答案是第一个问题的字符数组(即有一个字符数组数组而不是字符串数组).好像我可以在构建一个时指定项目大小:

chararray(shape, itemsize=1, unicode=False, buffer=None, offset=0,

strides=None, order=None)

更新:不,itemsize实际上是字符数.但是仍然有unicode = False.

这是要走的路吗?

它也会回答最后一个问题吗?

我如何实际使用它作为dtype?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值