假设我有这样的数组:
d= [[1.254,3.458,9.874][5.32,3.35,4.54][1.121,8.121,9.45][7.1215,9.454,8.14].... and etc.]
如何将d [0] [2]元素除以d [0] [2],d [1] [2],d [2] [2],d [3] [2] ... .... 等等? 我将使用数字解释它:
9.874(d[0] [2])/9.874(d[0] [2])
9.874(d[0] [2])/4.45(d[1] [2])
9.874(d[0] [2])/9.45(d[2] [2])
9.874(d[0] [2])/8.14(d[3] [2]) ........ and etc.
我希望我的结果是数组:
Result = [1,2.21,1.04,1.21,... and etc.]
或者(如果它更容易)结果可以添加到当前数组:
d= [[1.254,3.458,9.874,1][5.32,3.35,4.54,2.21][1.121,8.121,9.45,1.04][7.1215,9.454,8.14,1.21].... and etc.]
如您所见,result是数组元素的最后一个数组:
d[0] [3] = 1, d[1] [3] = 2.21, d[2] [3]=1.04, d[3] [3]=1.21
如果有人需要更多解释,请在评论部分写一下不要添加-1 :(
答案 0 :(得分:3)
这适用于您的示例:
result = [d[0][2]/dx[2] for dx in d]
答案 1 :(得分:0)
如果您只想要每个内部列表的最后一个元素,那么
d= [[1.254,3.458,9.874,1],[5.32,3.35,4.54,2.21],[1.121,8.121,9.45,1.04],[7.1215,9.454,8.14,1.21]]
for i in d: print i[-1]
1
2.21
1.04
1.21
如果您想将其作为列表,则可以使用列表理解
l = [i[-1] for i in d]
print l
[1, 2.21, 1.04, 1.21]
答案 2 :(得分:0)
如果你正在使用Numpy,你可以在你的数组中添加一个列,并用你的部门的结果填充它:
1: a = np.array([[1.254,3.458,9.874],[5.32,3.35,4.54][1.121,8.121,9.45],[7.1215,9.454,8.14]])
2: b =np.hstack((a, np.zeros((a.shape[0],1))))
3: b[:,3] = b[0,2]/b[:,2]
4: b
array([[ 1.254 , 3.458 , 9.874 , 1. ],
[ 5.32 , 3.35 , 4.54 , 2.17488987],
[ 1.121 , 8.121 , 9.45 , 1.04486772],
[ 7.1215 , 9.454 , 8.14 , 1.21302211]])
答案 3 :(得分:0)
更简单的是计算列表理解(@elzell提出的解决方案)result = [d[0][2]/dx[2] for dx in d]
您还可以将结果添加为每个子列表的最后一个元素(numpy中的数组是不同的动物)
for dx in d:
dx.append(d[0][2]/dx[2])