我在项目中遇到以下问题。我创建了一个可重复的问题示例:
In[1]: arr_in = np.array([1,2,3,4,5,6])
In[2]: def central(imx):
half = int(len((imx)/2))
im_forth = imx[half:]
im_back = imx[0:half:-1]
return im_forth, im_back
In[3]: xx, yy = central(arr_in)
In[4]: xx
Out[4]: array([], dtype=int32)
In[5]: yy
Out[5]: array([], dtype=int32)
我想知道为什么我没有接收输出,而只是一个空数组。提前谢谢。
您的问题是
half = int(len((imx)/2))
这相当于
half = int(len( [1/2, 2/2, 3/2, 4/2, 5/2, 6/2]))
或
half = int(6) => 6
你想做什么
half = int(len(imx)/2) => 3
或者更好的
half = len(imx)//2
你有点搞砸了计算一半,
def central(imx):
half = int(len(imx)/2) # Updated here
im_forth = imx[half:]
im_back = imx[0:half:-1]
return im_forth, im_back
int(len((imx)/2))
的扩展
In [1]: (arr_in)/2
Out[1]: array([0.5, 1. , 1.5, 2. , 2.5, 3. ])
In [2]: len((arr_in)/2)
Out[2]: 6
In [3]: int(len((arr_in)/2))
Out[3]: 6
这就是它返回空数组的原因