2024-04-19 21:53:45 发布
网友
我有一个数组
A = [[1, 2, 4, 0, -2, 6], [3, 5, 4, 9, 10, -3], [4, 6, 0, -5, 11, 2], [0, -3, -4, 0, 12, 8]]
我想创建另一个数组,把一半的条目设为零
B = [[1, 2, 4, 0, -0, 0], [3, 5, 4, 0, 0, 0], [4, 6, 0, 0, 0, 0], [0, -3, -4, 0, 0, 0]]
您可以尝试以下方法:
One line solution:
A = [[1, 2, 4, 0, -2, 6], [3, 5, 4, 9, 10, -3], [4, 6, 0, -5, 11, 2], [0, -3, -4, 0, 12, 8]] [item.__setitem__(item.index(value), 0)for item in A for index,value in enumerate(item[len(item)//2:])] print(A)
输出:
[[1, 2, 4, 0, 0, 0], [3, 5, 4, 0, 0, 0], [4, 6, 0, 0, 0, 0], [0, -3, -4, 0, 0, 0]]
Detailed solution:
以上列表理解如下:
for item in A: for index,value in enumerate(item[len(item)//2:]): item[item.index(value)]=0 print(A)
使用列表理解
[[0 if i>=len(l)/2 else j for i,j in enumerate(l)] for l in A]
使用numpy
import numpy as np a = np.array([[1, 2, 4, 0, -2, 6], [3, 5, 4, 9, 10, -3], [4, 6, 0, -5, 11, 2], [0, -3, -4, 0, 12, 8]]) a[:, a.shape[1]//2:] = 0 print(a)
给予
array([[ 1, 2, 4, 0, 0, 0], [ 3, 5, 4, 0, 0, 0], [ 4, 6, 0, 0, 0, 0], [ 0, -3, -4, 0, 0, 0]])
要转换回python列表,请使用a.tolist()
a.tolist()
您可以尝试以下方法:
输出:
以上列表理解如下:
使用列表理解
输出:
使用numpy
给予
要转换回python列表,请使用
a.tolist()
相关问题 更多 >
编程相关推荐