问题遇到的现象和发生背景
需要array每行计算平均值 然后将每一行里的每一个element与每行的平均值做比较 小于等于平均值的用0取代 大于的用1取代
问题相关代码,请勿粘贴截图
arr = np.arange(24).reshape(4,6)
print(type(arr))
print("替换前数组:",arr)
[rows, cols] = arr.shape
print([rows, cols])
mean = np.average(arr, axis=1)
print(mean)
print(mean[0])
for i in range(rows):
for j in range(cols):
arr[arr[i,j] < mean[i]] = 0
arr[arr[i,j] > mean[i]] = 1
#print(arr>10)
#arr[arr<10] =0
#arr[arr>10] =10
print("替换后数组:",arr)
运行结果及报错内容
<class 'numpy.ndarray'>
替换前数组: [[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]
[12 13 14 15 16 17]
[18 19 20 21 22 23]]
[4, 6]
[ 2.5 8.5 14.5 20.5]
2.5
替换后数组: [[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]]
我的解答思路和尝试过的方法
以上代码是尝试的过程 但未能达到我想要的结果
我想要达到的结果
替换过后的array应该是一个4*6并且是包含了0和1的一个array