微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我在python中计算后得到重复?

如何解决为什么我在python中计算后得到重复?

我正在执行一些简单的语句,我期望得到一个数组作为结果。但是,结果我得到了 6 行。

from itertools import combinations
import numpy as np

res = [
    np.array([[12.99632095],[29.60571445],[-1.85595153],[68.78926787],[ 2.75185088],[ 2.75204384]]),np.array([[ 15.66458062],[ 22.16467595],[ -3.75927882],[ -2.65954113],[  2.30128711],[197.45459974]])
]

pairs = combinations(res,2)
for pair in pairs:
    r = np.concatenate(pair,axis=1)
    r1 = pair[0]
    r2 = pair[1]
    sign = np.sign(r1 * r2)
    result = np.multiply(
        sign,np.min(np.abs(r),axis=1) / np.max(np.abs(r),axis=1)
    )

r 的值是这样的

[[ 12.99632095  15.66458062]
 [ 29.60571445  22.16467595]
 [ -1.85595153  -3.75927882]
 [ 68.78926787  -2.65954113]
 [  2.75185088   2.30128711]
 [  2.75204384 197.45459974]]

我得到的result是这样的

[[ 0.82966287  0.74866209  0.49369882  0.03866215  0.83626883  0.0139376 ]
 [ 0.82966287  0.74866209  0.49369882  0.03866215  0.83626883  0.0139376 ]
 [ 0.82966287  0.74866209  0.49369882  0.03866215  0.83626883  0.0139376 ]
 [-0.82966287 -0.74866209 -0.49369882 -0.03866215 -0.83626883 -0.0139376 ]
 [ 0.82966287  0.74866209  0.49369882  0.03866215  0.83626883  0.0139376 ]
 [ 0.82966287  0.74866209  0.49369882  0.03866215  0.83626883  0.0139376 ]]

我预期的 result 大约是现有结果的一行。

[[ 0.82966287  0.74866209  0.49369882  -0.03866215  0.83626883  0.0139376 ]]

为什么在现有结果输出的第 4 行中出现重复和 - 结果?

解决方法

你正在做combinations。因此,如果您有更多组合,您还需要 append 结果。

results = []
for pair in pairs:
    r = np.concatenate(pair,axis=1)
    for i in range(len(r)):
        r1 = r[:,0]
        r2 = r[:,1]
        sign = np.sign(r1 * r2)
        result = np.multiply(sign,np.min(np.abs(r),axis=1) / np.max(np.abs(r),axis=1))
    results.append(result)

你一次又一次地砍掉了整个组合。只需要改变r1r2的值,和一个循环。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?