当前位置: 首页>>代码示例>>Python>>正文


Python Data.permute_samples方法代码示例

本文整理汇总了Python中idtxl.data.Data.permute_samples方法的典型用法代码示例。如果您正苦于以下问题:Python Data.permute_samples方法的具体用法?Python Data.permute_samples怎么用?Python Data.permute_samples使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在idtxl.data.Data的用法示例。


在下文中一共展示了Data.permute_samples方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_data_type

# 需要导入模块: from idtxl.data import Data [as 别名]
# 或者: from idtxl.data.Data import permute_samples [as 别名]
def test_data_type():
    """Test if data class always returns the correct data type."""
    # Change data type for the same object instance.
    d_int = np.random.randint(0, 10, size=(3, 50))
    orig_type = type(d_int[0][0])
    data = Data(d_int, dim_order='ps', normalise=False)
    # The concrete type depends on the platform:
    # https://mail.scipy.org/pipermail/numpy-discussion/2011-November/059261.html
    # Hence, compare against the type automatically assigned by Python or
    # against np.integer
    assert data.data_type is orig_type, 'Data type did not change.'
    assert issubclass(type(data.data[0, 0, 0]), np.integer), (
        'Data type is not an int.')
    d_float = np.random.randn(3, 50)
    data.set_data(d_float, dim_order='ps')
    assert data.data_type is np.float64, 'Data type did not change.'
    assert issubclass(type(data.data[0, 0, 0]), np.float), (
        'Data type is not a float.')

    # Check if data returned by the object have the correct type.
    d_int = np.random.randint(0, 10, size=(3, 50, 5))
    data = Data(d_int, dim_order='psr', normalise=False)
    real = data.get_realisations((0, 5), [(1, 1), (1, 3)])[0]
    assert issubclass(type(real[0, 0]), np.integer), (
        'Realisations type is not an int.')
    sl = data._get_data_slice(0)[0]
    assert issubclass(type(sl[0, 0]), np.integer), (
        'Data slice type is not an int.')
    settings = {'perm_type': 'random'}
    sl_perm = data.slice_permute_samples(0, settings)[0]
    assert issubclass(type(sl_perm[0, 0]), np.integer), (
        'Permuted data slice type is not an int.')
    samples = data.permute_samples((0, 5), [(1, 1), (1, 3)], settings)[0]
    assert issubclass(type(samples[0, 0]), np.integer), (
        'Permuted samples type is not an int.')
开发者ID:SimonStreicher,项目名称:IDTxl,代码行数:37,代码来源:test_data.py

示例2: test_permute_replications

# 需要导入模块: from idtxl.data import Data [as 别名]
# 或者: from idtxl.data.Data import permute_samples [as 别名]
def test_permute_replications():
    """Test surrogate creation by permuting replications."""
    n = 20
    data = Data(np.vstack((np.zeros(n),
                           np.ones(n) * 1,
                           np.ones(n) * 2,
                           np.ones(n) * 3)).astype(int),
                         'rs',
                         normalise=False)
    current_value = (0, n)
    l = [(0, 1), (0, 3), (0, 7)]
    [perm, perm_idx] = data.permute_replications(current_value=current_value,
                                                 idx_list=l)
    assert (np.all(perm[:, 0] == perm_idx)), 'Permutation did not work.'

    # Assert that samples have been swapped within the permutation range for
    # the first replication.
    rng = 3
    current_value = (0, 3)
    l = [(0, 0), (0, 1), (0, 2)]
    #data = Data(np.arange(n), 's', normalise=False)
    data = Data(np.vstack((np.arange(n),
                           np.arange(n))).astype(int),
                         'rs',
                         normalise=False)
    [perm, perm_idx] = data.permute_samples(current_value=current_value,
                                            idx_list=l,
                                            perm_range=rng)
    samples = np.arange(rng)
    i = 0
    n_per_repl = int(data.n_realisations(current_value) / data.n_replications)
    for p in range(n_per_repl // rng):
        assert (np.unique(perm[i:i + rng, 0]) == samples).all(), ('The '
            'permutation range was not respected.')
        samples += rng
        i += rng
    rem = n_per_repl % rng
    if rem > 0:
        assert (np.unique(perm[i:i + rem, 0]) == samples[0:rem]).all(), ('The '
            'remainder did not contain the same realisations.')

    # Test assertions that perm_range is not too low or too high.
    with pytest.raises(AssertionError):
        data.permute_samples(current_value=current_value,
                             idx_list=l,
                             perm_range=1)
    with pytest.raises(AssertionError):
        data.permute_samples(current_value=current_value,
                             idx_list=l,
                             perm_range=np.inf)
    # Test ValueError if a string other than 'max' is given for perm_range.
    with pytest.raises(ValueError):
        data.permute_samples(current_value=current_value,
                             idx_list=l,
                             perm_range='foo')
开发者ID:finnconor,项目名称:IDTxl,代码行数:57,代码来源:test_data.py

示例3: test_permute_replications

# 需要导入模块: from idtxl.data import Data [as 别名]
# 或者: from idtxl.data.Data import permute_samples [as 别名]
def test_permute_replications():
    """Test surrogate creation by permuting replications."""
    n = 20
    data = Data(np.vstack((np.zeros(n),
                           np.ones(n) * 1,
                           np.ones(n) * 2,
                           np.ones(n) * 3)).astype(int),
                'rs',
                normalise=False)
    current_value = (0, n - 1)
    l = [(0, 1), (0, 3), (0, 7)]
    [perm, perm_idx] = data.permute_replications(current_value=current_value,
                                                 idx_list=l)
    assert (np.all(perm[:, 0] == perm_idx)), 'Permutation did not work.'

    # Assert that samples have been swapped within the permutation range for
    # the first replication.
    rng = 3
    current_value = (0, 3)
    l = [(0, 0), (0, 1), (0, 2)]
    # data = Data(np.arange(n), 's', normalise=False)
    data = Data(np.vstack((np.arange(n),
                           np.arange(n))).astype(int),
                'rs',
                normalise=False)
    perm_settings = {
        'perm_type': 'local',
        'perm_range': rng
    }
    [perm, perm_idx] = data.permute_samples(current_value=current_value,
                                            idx_list=l,
                                            perm_settings=perm_settings)
    samples = np.arange(rng)
    i = 0
    n_per_repl = int(data.n_realisations(current_value) / data.n_replications)
    for p in range(n_per_repl // rng):
        assert (np.unique(perm[i:i + rng, 0]) == samples).all(), (
                                    'The permutation range was not respected.')
        samples += rng
        i += rng
    rem = n_per_repl % rng
    if rem > 0:
        assert (np.unique(perm[i:i + rem, 0]) == samples[0:rem]).all(), (
                        'The remainder did not contain the same realisations.')
开发者ID:SimonStreicher,项目名称:IDTxl,代码行数:46,代码来源:test_data.py

示例4: test_permute_samples

# 需要导入模块: from idtxl.data import Data [as 别名]
# 或者: from idtxl.data.Data import permute_samples [as 别名]
def test_permute_samples():
    """Test surrogate creation by permuting samples."""
    n = 20
    data = Data(np.arange(n), 's', normalise=False)

    # Test random permutation
    settings = {'perm_type': 'random'}
    perm = data.permute_samples(current_value=(0, 0),
                                idx_list=[(0, 0)],
                                perm_settings=settings)[0]
    assert (sorted(np.squeeze(perm)) == np.arange(n)).all(), (
                            'Permutation did not contain the correct values.')

    # Test circular shifting
    settings = {'perm_type': 'circular', 'max_shift': 4}
    perm = data.permute_samples(current_value=(0, 0),
                                idx_list=[(0, 0)],
                                perm_settings=settings)[0]
    idx_start = np.where(np.squeeze(perm) == 0)[0][0]
    assert (np.squeeze(np.vstack((perm[idx_start:], perm[:idx_start]))) ==
            np.arange(n)).all(), ('Circular shifting went wrong.')

    # Test shifting of data blocks
    block_size = round(n / 10)
    settings = {'perm_type': 'block', 'block_size': block_size,
                'perm_range': round(n / block_size)}
    perm = data.permute_samples(current_value=(0, 0),
                                idx_list=[(0, 0)],
                                perm_settings=settings)[0]
    block_size = int(round(n / 10))
    for b in range(0, n, block_size):
        assert perm[b + 1] - perm[b] == 1, 'Block permutation went wrong.'

    # Test shifting of data blocks with n % block_size != 0
    block_size = 3
    settings = {'perm_type': 'block', 'block_size': block_size,
                'perm_range': round(n / block_size)}
    perm = data.permute_samples(current_value=(0, 0),
                                idx_list=[(0, 0)],
                                perm_settings=settings)[0]
    for b in range(0, n, settings['block_size']):
        assert perm[b + 1] - perm[b] == 1, 'Block permutation went wrong.'

    settings = {'perm_type': 'block', 'block_size': 3, 'perm_range': 2}
    perm = data.permute_samples(current_value=(0, 0),
                                idx_list=[(0, 0)],
                                perm_settings=settings)[0]

    # Test local shifting
    perm_range = int(round(n / 10))
    settings = {'perm_type': 'local', 'perm_range': perm_range}
    perm = data.permute_samples(current_value=(0, 0),
                                idx_list=[(0, 0)],
                                perm_settings=settings)[0]
    for b in range(0, n, perm_range):
        assert abs(perm[b + 1] - perm[b]) == 1, 'Local shifting went wrong.'

    # Test assertions that perm_range is not too low or too high.
    current_value = (0, 3)
    l = [(0, 0), (0, 1), (0, 2)]
    perm_settings = {'perm_type': 'local', 'perm_range': 1}
    # Test Assertion if perm_range too small
    with pytest.raises(AssertionError):
        data.permute_samples(current_value=current_value,
                             idx_list=l,
                             perm_settings=perm_settings)

    # Test TypeError if settings are no integers
    perm_settings['perm_range'] = np.inf
    with pytest.raises(TypeError):
        data.permute_samples(current_value=current_value,
                             idx_list=l,
                             perm_settings=perm_settings)
    perm_settings['perm_range'] = 'foo'
    with pytest.raises(TypeError):
        data.permute_samples(current_value=current_value,
                             idx_list=l,
                             perm_settings=perm_settings)
    perm_settings['perm_type'] = 'block'
    perm_settings['block_size'] = 3
    with pytest.raises(TypeError):
        data.permute_samples(current_value=current_value,
                             idx_list=l,
                             perm_settings=perm_settings)
    perm_settings['block_size'] = 3.5
    with pytest.raises(TypeError):
        data.permute_samples(current_value=current_value,
                             idx_list=l,
                             perm_settings=perm_settings)
    perm_settings['perm_type'] = 'circular'
    perm_settings['max_shift'] = 3.5
    with pytest.raises(TypeError):
        data.permute_samples(current_value=current_value,
                             idx_list=l,
                             perm_settings=perm_settings)
开发者ID:SimonStreicher,项目名称:IDTxl,代码行数:97,代码来源:test_data.py


注:本文中的idtxl.data.Data.permute_samples方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。