将ndarrays列表乘以list [英] multiply list of ndarrays by list

查看:48
本文介绍了将ndarrays列表乘以list的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将一个数字列表乘以一个ndarray,即列表中的每个数字都乘以第一个ndarray.这是列表:

I want to multiply a list of numbers, by a ndarray, that is, each number in the list multiply by the first ndarray. This is the list:

list1 = [840,845,897]

这是ndarray的列表

This is the list of 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函数,for进行迭代,但是我没有成功.我经常遇到的错误是:TypeError:无法将序列乘以'str'类型的非整数.它可以使用新数据创建一个单独的列,也可以简单地创建一个列表.结果:

I want to multiply the first item in the list by the first ndarray. The nan values remain nan and just multiply the float numbers. I have tried with map, lambda function, iterations with for but I have not succeeded. The error that I get frequently is:TypeError: can't multiply sequence by non-int of type 'str'. It can create a separate column with the new data, or simply create a list. The result:

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]

推荐答案

您可以像这样循环遍历数组:

You can loop over the array like so:

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)

这篇关于将ndarrays列表乘以list的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆