저는 몇 개의 카탈로그를 생성 중이며 주석을위한 컬럼을 갖고 싶습니다. 어떤 이유로 열을 생성하고 주석을 저장하려고하면 첫 번째 문자 만 사용됩니다. C1 보면 그런astropy 컬럼을 얻는 방법 길이를 나타내는 문자열을 저장 하시겠습니까?
print C1[4]
>> t
from astropy.table import Column
C1 = Column(['']*12, name = 'ID')
C1[4] = 'test comment'
, 나는 <Column name='ID' dtype='str1' length=12>
그래서 그것은 분명히 단 한 문자 문자열을 저장하는 것 것을 알 수있다.
내가
C2 = Column(['some really long silly string']*12, name = 'ID')
C2[4] = 'test comment'
다음
print C1[4]
>> test comment
그러나 다시를하려고하면, 난 단지 <Column name='ID' dtype='str29' length=12>
때문에 29 문자 문자열을 저장할 수 있으며,이 어쨌든 끔찍한 솔루션입니다.
길이 문자열을 저장하도록 열을 어떻게 표시합니까?
관련 항목 : [가변 길이의 numpy 재 배열 문자열] (http://stackoverflow.com/questions/9108837/numpy-recarray-strings-of-variable-length). 예를 들어'Column ([ ''* 12, name = 'ID', dtype = np.object) '을 사용할 수 있습니다. – Evert
이것이 효과가있는 것은 흥미 롭습니다. 'dtype = np.str'을 설정하면 기본값은'str1'입니다. 'np.object'로 일반화하지 않고 다른 해결 방법을 생각할 수 없다면 이것을 대답으로 제출해야합니다. – FriskyGrub
이와 같은 테이블 (numpy의 recarray, Pandas의 데이터 프레임)은 일부 고정 유형 (~ 고정 메모리 할당)으로 만들어 지므로 일반 (가변) 문자열 유형이 없습니다. 예를 들어, 팬더는 문자열로 열을 초기화 할 때'객체 '를 유추합니다. – Evert