Python 仅取字符串的第一个字符的Numpy
下面是我的问题的简化版本。我想创建一个Python 仅取字符串的第一个字符的Numpy,python,numpy,Python,Numpy,下面是我的问题的简化版本。我想创建一个(N,1)shapenumpy数组,它的值是字符串。但是,当我尝试插入字符串时,只会插入字符串的第一个字符 我做错了什么 >>> import numpy as np >>> N = 23000 >>> Y = np.empty((N, 1), dtype=str) >>> Y.shape (23000, 1) >>> for i in range(N): ...
(N,1)
shapenumpy数组,它的值是字符串。但是,当我尝试插入字符串时,只会插入字符串的第一个字符
我做错了什么
>>> import numpy as np
>>> N = 23000
>>> Y = np.empty((N, 1), dtype=str)
>>> Y.shape
(23000, 1)
>>> for i in range(N):
... Y[i] = "random string"
...
>>> Y[10]
array(['r'], dtype='<U1')
>>将numpy作为np导入
>>>N=23000
>>>Y=np.empty((N,1),dtype=str)
>>>Y形
(23000, 1)
>>>对于范围(N)中的i:
... Y[i]=“随机字符串”
...
>>>Y[10]
数组(['r'],dtype='默认情况下,数据类型str
的长度为1
。因此,您将只获得一个字符。我们可以使用np.dtype('U100')
Un
设置最大数据长度,其中U
是unicode,而n
是其中的字符数
试试下面的代码
>>> import numpy as np
>>> N = 23000
>>> Y = np.empty((N, 1), dtype=np.dtype('U100'))
>>> Y.shape
(23000, 1)
>>> for i in range(N):
... Y[i] = "random string"
...
>>> Y[10]
array(['random string'], dtype='<U100')
>>将numpy作为np导入
>>>N=23000
>>>Y=np.empty((N,1),dtype=np.dtype('U100'))
>>>Y形
(23000, 1)
>>>对于范围(N)中的i:
…Y[i]=“随机字符串”
...
>>>Y[10]
数组(['random string'],dtype='即使您在np.empty
中指定了dtype=str
,当您选中Y时,它不是字符串类型
import numpy as np
N = 23000
Y = np.empty((N, 1), dtype=str)
Y
输出:
array([[''],
[''],
[''],
...,
[''],
[''],
['']], dtype='<U1')
Y[10]
的输出:
array(['random string'], dtype='<U25')
array(['random string',dtype='您应该将dtype从'U1'更改为'Un',其中n是'n-character string'@bollence当初始化Y为空时,我已经将dtype设置为'str',我需要在那里更改吗?
array(['random string'], dtype='<U25')