Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数组拆分为两部分_Python_Numpy_Vector - Fatal编程技术网

Python 将数组拆分为两部分

Python 将数组拆分为两部分,python,numpy,vector,Python,Numpy,Vector,给出的行向量可能类似于以下任意一种 [10, 10, 10, 11, 10, 9, 0, 0, 1, 0] [200, 199, 200, 199, 198, 201, 201, 0, 1, 1] [99, 100, 98, 99, 100, 100, 100, 140, 139, 141] 关键是一边比另一边大得多。使用python,是否有一种干净的方法可以找到拆分发生的位置?是。遍历列表。进行运行统计分析;考虑到这些例子,标准偏差应该足够大。当您发现一个严重的异常值

给出的行向量可能类似于以下任意一种

    [10, 10, 10, 11, 10, 9, 0, 0, 1, 0]
    [200, 199, 200, 199, 198, 201, 201, 0, 1, 1]
    [99, 100, 98, 99, 100, 100, 100, 140, 139, 141]

关键是一边比另一边大得多。使用python,是否有一种干净的方法可以找到拆分发生的位置?

是。遍历列表。进行运行统计分析;考虑到这些例子,标准偏差应该足够大。当您发现一个严重的异常值时,将列表划分到那里。您的所有分割都远远超出了异常值的典型3西格玛标准


这能让你继续吗?

一个简单的方法是检查条目是否大于或小于数组的平均值。这段代码提供了一个函数,用于查找示例中发生拆分的索引。它在统计上不可靠,但在您提到的标准情况下会起作用

import numpy as np

def cut(arr):
    m = np.mean(np.array(arr))
    arr = arr - m
    arr = arr > 0
    return np.sum(arr)

cut([10,10,10,11,10,9,0,0,1,0])
return
6
cut([10,10,10,11,10,9,0,0,0,1,0])
返回
7
cut([99,100,98,99,100,100,100,140,139,141])
返回
3
,这是“组”的第一个或最后一个元素的索引包含最小的值。

能否请您澄清您希望以什么为基础拆分数组?