我有一个像这样的数组:
Exception in thread "main" java.lang.IllegalStateException: Cannot find employeeTable WHERE id=some-invalid-id-string
我希望根据行号在第3列上执行>>> arr
array([[1, 2, 2.5],
[3, 4, 3.75],
[5, 6, 1.25],
[7, 8, 1.3],
[9, 0, 3.5]])
或math.floor
操作。因此,如果行号为奇数,则执行math.ceil
操作,如果行号为偶数,则执行ceil
操作。像这样:
floor
我该怎么做?
答案 0 :(得分:2)
带切片-
arr[::2,2] = np.ceil(arr[::2,2])
arr[1::2,2] = np.floor(arr[1::2,2])
答案 1 :(得分:0)
您可以使用np.where
,也可以使用np.floor
代替math.floor
,以对numpy数组进行操作。
mask = np.arange(len(arr))%2
arr[:,-1] = np.where(mask, np.floor(arr[:,-1]), np.ceil(arr[:,-1]))
# if you want to apply to all array, use
# np.where(mask[:,None], np.floor(arr), np.ceil(arr))
输出:
array([[1., 2., 3.],
[3., 4., 3.],
[5., 6., 2.],
[7., 8., 1.],
[9., 0., 4.]])