TypeError:'NoneType'对象不支持项目分配

时间:2013-10-26 09:46:57

标签: python numpy

我正在尝试使用以下代码根据NumPy数组的特定索引处的值进行一些数学计算

X = np.arange(9).reshape(3,3)
temp = X.copy().fill(5.446361E-01)
ind = np.where(X < 4.0)
temp[ind] = 0.5*X[ind]**2 - 1.0
ind = np.where(X >= 4.0 and X < 9.0)
temp[ind] = (5.699327E-1*(X[ind]-1)**4)/(X[ind]**4)
print temp

但是我收到以下错误

Traceback (most recent call last):
File "test.py", line 7, in <module>
temp[ind] = 0.5*X[ind]**2 - 1.0 
TypeError: 'NoneType' object does not support item assignment

请你帮我解决这个问题? 感谢

1 个答案:

答案 0 :(得分:2)

fill什么都不返回。

>>> import numpy as np
>>> X = np.arange(9).reshape(3,3)
>>> temp = X.copy()
>>> return_value_of_fill = temp.fill(5.446361E-01)
>>> return_value_of_fill is None
True

替换以下行:

temp = X.copy().fill(5.446361E-01)

使用:

temp = X.copy()
temp.fill(5.446361E-01)