[英]multiply list of ndarrays by list
我想将一个数字列表乘以一个ndarray,即列表中的每个数字乘以第一个ndarray。 这是列表:
list1 = [840,845,897]
这是 ndarray 的列表
list = df['Example']
list
0 [[nan, nan, nan, 0.854,nan,0.562,0.21615],[nan, nan, nan, 0.854,nan,0.562,0.21615]]
1 [[nan, nan, nan, nan, nan, nan, 0.5196,0.56518,0.165],[nan, nan, nan, nan, nan, nan, 0.816,0.5565518,0.225]
2 [[nan, nan, nan, nan, nan, nan, nan, 0.8528845],[nan, 0.595, nan, nan, 0.2651, nan, nan, 0.8528845],[nan, nan, nan, nan, nan, nan, nan, 0.8516]
我想将列表中的第一项乘以第一个 ndarray。 nan 值仍然是 nan 并且只是乘以浮点数。 我已经尝试过使用 map、lambda function 进行迭代,但我没有成功。 我经常遇到的错误是:TypeError: can't multiply sequence by non-int of type 'str'。 它可以使用新数据创建一个单独的列,或者只是创建一个列表。 结果:
list_new
0 [[nan, nan, nan, 717.36,nan,472.08,181.566],[nan, nan, nan, 717.36,nan,472.08,181.5666]]
1 [[nan, nan, nan, nan, nan, nan, 439.062,477.5771,139.425],[nan, nan, nan, nan, nan, nan, 689.52,470.28,190.125]
2 [[nan, nan, nan, nan, nan, nan, nan, 765.037],[nan, 533.715, nan, nan, 237.79, nan, nan, 765.037],[nan, nan, nan, nan, nan, nan, nan, 763.8852]
您可以像这样遍历数组:
nd = np.array( ... )
for i, x in enumerate(list1):
for y in nd[i]:
for j in range(len(y)):
y[j] *= x
print(nd)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.