我有两组数字:
我想计算MultArray与数据框的点积,并将结果存储在数据框的新列中。
mult_array2= [1 << i for i in range(BigCourseDF.shape[1])] BigCourseDF["sortkey"]=BigCourseDF.dot(mult_array2)
[
range(BigCourseDF.shape[1])
较小(例如45)时,此代码将按预期工作。但是,在mult_array2
长度为1485的情况下,第二行将导致类似OverflowError:int太大而无法转换的错误。这令人沮丧,因为结果值应小于mult_array2
值的总和(如果整个数据帧的值都为1,则结果将是此值)。
感谢您的帮助,如果需要,我可以提供更多背景信息。
更新:csv file of BigCourseDF here
我有两组数字:一个是2的幂(1、2、4等)的“列表”(元组也起作用),我将其称为Mult_array。我可以成功地将其定义为长度为1485,例如,I ...
[我怀疑您的BigCourseDF行(带有1和0的行)的数据类型为np.float64。如果使用python int(无限制位数)数组进行矩阵乘法,则ints将转换为64位浮点数,这将在2 ** 1024左右产生问题: