我试图制作一系列字符串,这些字符串都是'< =','> ='和' ='。
这是我的代码:
del_str=np.zeros((Nnodes*ndofs),dtype=str)
for i in range(Nnodes*ndofs):
if dels[i]>0:
del_str[i]="<="
elif dels[i]<0:
del_str[i]=">="
else:
del_str[i]="="
我认为这应该可行但是当我用打印检查时,我只得到这些:
['=' '=' '=' '=' '=' '=' '<' '>' '<' '>' '>' '<' '>' '>' '>' '>' '>' '>' '>' '>' '>' '>' '>' '>' '>' '>' '>' '>' '=' '=' '=' '=' '<' '>']
我哪里出错?我甚至试过这些:
del_str=np.zeros((Nnodes*ndofs),dtype=str)
for i in range(Nnodes*ndofs):
if dels[i]>0:
del_str[i]="<"+"="
elif dels[i]<0:
del_str[i]=">"+"="
else:
del_str[i]="="
但它仍然无法运作。请让我知道我错过了什么..
答案 0 :(得分:3)
您的datatype仅允许存储一个字符。尝试:
del_str = np.zeros((Nnodes*ndofs), dtype='|S2')
演示:
dtype=str
:
>>> del_str = np.zeros(10, dtype=str)
>>> del_str
array(['', '', '', '', '', '', '', '', '', ''],
dtype='|S1')
>>> del_str[0] = '<='
>>> del_str
array(['<', '', '', '', '', '', '', '', '', ''],
dtype='|S1')
dtype='|S2'
:
>>> del_str = np.zeros(10, dtype='|S2')
>>> del_str
array(['', '', '', '', '', '', '', '', '', ''],
dtype='|S2')
>>> del_str[0] = '<='
>>> del_str
array(['<=', '', '', '', '', '', '', '', '', ''],
dtype='|S2')