我有一个numpy数组,我想从一个对象转换为复杂.如果我将该数组作为dtype字符串并转换它,则没有问题:
In[22]: bane
Out[22]: array(['1.000027337501943-7.331085223659654E-6j',
'1.0023086995640738-1.8228368353755985E-4j',
'-0.017014515914781394-0.2820013864855318j'],
dtype='|S41')
In [23]: bane.astype(dtype=complex)
Out[23]:
array([ 1.00002734 -7.33108522e-06j, 1.00230870 -1.82283684e-04j,
-0.01701452 -2.82001386e-01j])
Run Code Online (Sandbox Code Playgroud)
但是当它是dtype对象并且我尝试转换它时,我得到一个需要浮点数的错误.为什么是这样?
In [24]: bane.astype(dtype=object)
Out[24]:
array(['1.000027337501943-7.331085223659654E-6j',
'1.0023086995640738-1.8228368353755985E-4j',
'-0.017014515914781394-0.2820013864855318j'], dtype=object)
In [25]: _.astype(dtype=complex)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-25-f5d89c8cc46c> in <module>()
----> 1 _.astype(dtype=complex)
TypeError: a float is required
Run Code Online (Sandbox Code Playgroud)
要转换它,我使用两个调用astype方法,这看起来很笨拙:
bane_obj
Out[27]:
array(['1.000027337501943-7.331085223659654E-6j',
'1.0023086995640738-1.8228368353755985E-4j',
'-0.017014515914781394-0.2820013864855318j'], dtype=object)
In [28]: bane_obj.astype(dtype=str).astype(dtype=complex)
Out[28]:
array([ 1.00002734 -7.33108522e-06j, 1.00230870 -1.82283684e-04j,
-0.01701452 -2.82001386e-01j])
Run Code Online (Sandbox Code Playgroud) 我有一个字符串列表,前缀字符代表数字的倍增因子.所以如果我有这样的数据:
data = ['101n', '100m', '100.100f']
Run Code Online (Sandbox Code Playgroud)
我想用字典
prefix_dict = {'y': 'e-24', 'z': 'e-21', 'a': 'e-18', 'f': 'e-15', 'p': 'e-12',
'n': 'e-9', 'u': 'e-6', 'm': 'e-3', 'c': 'e-2', 'd': 'e-1',
'da': 'e1', 'h': 'e2', 'k': 'e3', 'M': 'e6', 'G': 'e9',
'T': 'e12', 'P': 'e15', 'E': 'e18', 'Z': 'e21', 'Y': 'e24'}
Run Code Online (Sandbox Code Playgroud)
插入相应的字符串.当我看到与我类似的其他问题时,有一个角色被翻译成另一个角色.有没有办法使用translate函数将一个字符翻译成多个字符,还是应该以不同的方式接近它?