질문에 대해서는 OP, 답변에 대해서는 Roman에게 감사합니다. 나는 이것을 찾기 위해 조금만 검색해야했다. 다음이 다른 사람들에게 도움이되기를 바랍니다.
파이썬 2.7
참조 : https://docs.scipy.org/doc/numpy/user/basics.io.genfromtxt.html
import numpy as np
from StringIO import StringIO
data = "1, abc , 2\n 3, xxx, 4"
print type(data)
"""
<type 'str'>
"""
print '\n', np.genfromtxt(StringIO(data), delimiter=",", dtype="|S3", autostrip=True)
"""
[['1' 'abc' '2']
['3' 'xxx' '4']]
"""
print '\n', type(data)
"""
<type 'str'>
"""
print '\n', np.genfromtxt(StringIO(data), delimiter=",", autostrip=True)
"""
[[ 1. nan 2.]
[ 3. nan 4.]]
"""
파이썬 3.5 :
import numpy as np
from io import StringIO
import io
data = "1, abc , 2\n 3, xxx, 4"
#print(data)
"""
1, abc , 2
3, xxx, 4
"""
#print(type(data))
"""
<class 'str'>
"""
#np.genfromtxt(StringIO(data), delimiter=",", autostrip=True)
# TypeError: Can't convert 'bytes' object to str implicitly
print('\n')
print(np.genfromtxt(io.BytesIO(data.encode()), delimiter=",", dtype="|S3", autostrip=True))
"""
[[b'1' b'abc' b'2']
[b'3' b'xxx' b'4']]
"""
print('\n')
print(np.genfromtxt(io.BytesIO(data.encode()), delimiter=",", autostrip=True))
"""
[[ 1. nan 2.]
[ 3. nan 4.]]
"""
곁에:
dtype = "| Sx", 여기서 x = {1, 2, 3, ...} 중 하나 :
dtypes. 파이썬에서 S1과 S2의 차이점
"S1 및 | S2 문자열은 데이터 유형 디스크립터입니다. 첫 번째는 배열이 길이가 1 인 문자열을 보유하고 두 번째가 길이가 2 인 것을 의미합니다. ..."
TypeError
,이 변경을 분리하면 s (문자열 인수가 예상되고 '바이트'를 얻음)로 끝날 수 있습니다 . 파이썬 3에서 btyes와 str (유니 코드)을주의해서 구별해야합니다.