标签: slice

按行切片Pandas DataFrame

我正在hdf = pandas.HDFStore('Survey.h5')通过pandas包处理从h5文件加载的调查数据.在此范围内DataFrame,所有行都是单个调查的结果,而列是单个调查中所有问题的答案.

我的目标是将此数据集缩小到一个较小的数据集,DataFrame仅包括某个问题上具有特定描述答案的行,即此列中的所有相同值.我能够确定具有此条件的所有行的索引值,但我找不到如何删除此行或仅使用这些行创建新的df.

python slice pandas

26
推荐指数
2
解决办法
6万
查看次数

在Scipy中切片稀疏矩阵 - 哪种类型最好?

SciPy 稀疏矩阵教程非常好 - 但它实际上留下了切片un(der)开发的部分(仍然是大纲形式 - 参见章节:"处理稀疏矩阵").

一旦这个问题得到解答,我会尝试更新教程.

我有一个大的稀疏矩阵 - 目前采用dok_matrix格式.

import numpy as np
from scipy import sparse
M = sparse.dok_matrix((10**6, 10**6))
Run Code Online (Sandbox Code Playgroud)

对于各种方法,我希望能够切割列,而对于其他我希望切片行.理想情况下,我会使用高级索引(即布尔向量bool_vect)来对稀疏矩阵进行切片M- 如下所示:

bool_vect = np.arange(10**6)%2  # every even index
out = M[bool_vect,:]            # Want to select every even row
Run Code Online (Sandbox Code Playgroud)

要么

out = M[:,bool_vect] # Want to select every even column
Run Code Online (Sandbox Code Playgroud)

首先,dok_matrices不支持这个 - 但我认为如果我第一次转向lil_matrices,它会缓慢地工作 sparse.lil_matrix(M)

至于我可以从教程中收集 - 切片列我想使用CSC并切片行我想要切片CSR.那么这是否意味着我应该M通过以下方式投射矩阵:

M.tocsc()[:,bool_vect]
Run Code Online (Sandbox Code Playgroud)

要么

M.tocsr()[bool_vect,:]
Run Code Online (Sandbox Code Playgroud)

我有点猜测,因为它,我的代码很慢.任何了解其工作原理的人的帮助都会受到赞赏.提前致谢.

如果事实证明我不应该使用布尔数组索引我的矩阵,而是使用整数(索引)列表 - 这也是我很乐意找到的东西.哪个更有效率.

最后 - 这是一个很大的矩阵,如果这可以在广播中发生,那么奖励积分.

python indexing scipy sparse-matrix slice

26
推荐指数
1
解决办法
2万
查看次数

子集由R中的日期范围设置的data.table

我在data.table中有一个大型数据集,我想按日期范围进行分组.我的数据集如下所示:

testset <- data.table(date=as.Date(c("2013-07-02","2013-08-03","2013-09-04",
                                     "2013-10-05","2013-11-06")), 
                      yr = c(2013,2013,2013,2013,2013), 
                      mo = c(07,08,09,10,11),
                      da = c(02,03,04,05,06), 
                      plant = LETTERS[1:5], 
                      product = as.factor(letters[26:22]), 
                      rating = runif(25))
Run Code Online (Sandbox Code Playgroud)

我希望能够直接从选择的日期范围as.Date列不使用yr,moda列.目前,我正在进行mo分组,有时非常笨重,尤其是在多年转换的时候.一种更优雅的方法可以让我的生活变得更加轻松.

提前致谢!

r subset date-range slice data.table

26
推荐指数
3
解决办法
5万
查看次数

如何习惯性地复制切片?

在Go中,复制切片是标准费用,如下所示:

# It will figure out the details to match slice sizes
dst = copy(dst[n:], src[:m])
Run Code Online (Sandbox Code Playgroud)

在Rust中,我找不到与替换类似的方法.我想出的东西看起来像这样:

fn copy_slice(dst: &mut [u8], src: &[u8]) -> usize {
    let mut c = 0;
    for (&mut d, &s) in dst.iter_mut().zip(src.iter()) {
        d = s;
        c += 1;
    }
    c
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我得到了这个我无法解决的编译错误:

error[E0384]: re-assignment of immutable variable `d`
 --> src/main.rs:4:9
  |
3 |     for (&mut d, &s) in dst.iter_mut().zip(src.iter()) {
  |               - first assignment to `d`
4 |         d = s;
  |         ^^^^^ re-assignment …
Run Code Online (Sandbox Code Playgroud)

slice rust

26
推荐指数
2
解决办法
2万
查看次数

切片和数组之间有什么区别?

为什么都是&[u8]&[u8; 3]确定在这个例子吗?

fn main() {
    let x: &[u8] = &[1u8, 2, 3];
    println!("{:?}", x);

    let y: &[u8; 3] = &[1u8, 2, 3];
    println!("{:?}", y);
}
Run Code Online (Sandbox Code Playgroud)

&[T; n]可以胁迫的事实&[T]是使它们可以容忍的方面. - 克里斯摩根

为什么可以&[T; n]胁迫&[T]?在其他条件下,这种强制发生了吗?

arrays coercion slice rust

26
推荐指数
3
解决办法
3728
查看次数

如何在Golang中生成一系列数字?

我想在Golang中生成一系列数字,但我找不到任何内置函数.
基本上我想在Golang中等效PHP的范围函数:

array range ( mixed $start , mixed $end [, number $step = 1 ] )
Run Code Online (Sandbox Code Playgroud)

在创建数字类型的切片/数组时,您希望使用数字序列填充/初始化它.

arrays initialization go slice

26
推荐指数
2
解决办法
2万
查看次数

golang中的cap vs len

golang中一个切片的cap和len有什么区别?

根据定义:

切片具有长度和容量.

切片的长度是它包含的元素数.

切片的容量是基础数组中元素的数量,从切片中的第一个元素开始计算.

x := make([]int, 0, 5) // len(b)=0, cap(b)=5
Run Code Online (Sandbox Code Playgroud)

len是否仅表示非空值?

go slice

26
推荐指数
2
解决办法
1万
查看次数

在Swift中,获取数组中最后两项的最简洁方法是什么?

是否有更简洁的方法来获取Swift中数组的最后两项?一般来说,我试图避免这种方法,因为它很容易与索引一个接一个.(在本例中使用Swift 1.2.)

// Swift -- slices are kind of a hassle?
let oneArray = ["uno"]
let twoArray = ["uno", "dos"]
let threeArray = ["uno", "dos", "tres"]

func getLastTwo(array: [String]) -> [String] {
    if array.count <= 1 {
        return array
    } else {
        let slice: ArraySlice<String> = array[array.endIndex-2..<array.endIndex]
        var lastTwo: Array<String> = Array(slice)
        return lastTwo
    }
}

getLastTwo(oneArray)   // ["uno"]
getLastTwo(twoArray)   // ["uno", "dos"]
getLastTwo(threeArray) // ["dos", "tres"]
Run Code Online (Sandbox Code Playgroud)

我希望能有更接近Python的便利性.

## Python -- very convenient slices
myList = ["uno", "dos", "tres"]
print …
Run Code Online (Sandbox Code Playgroud)

arrays slice swift

25
推荐指数
4
解决办法
2万
查看次数

slice()函数在Python中做了什么?

首先,我想澄清一个问题:它是关于slice()函数,而不是列表或字符串之类的a[5:4:3].

文档提到这个函数在NumPy中使用并没有给出使用示例(它说如何使用它但是没有说何时使用它).而且,我从来没有在任何Python程序中看到过这个函数.

什么时候应该使用slice()普通Python编程时使用该函数(没有NumPy或SciPy)?任何例子将不胜感激.

python slice python-2.7 python-3.x

25
推荐指数
3
解决办法
1万
查看次数

如何在Go中检查切片是否具有给定索引?

我们可以使用地图轻松完成:

item, ok := myMap["index"]
Run Code Online (Sandbox Code Playgroud)

但不是切片:

item, ok := mySlice[3] // panic!
Run Code Online (Sandbox Code Playgroud)

感到惊讶的是之前没有被问过.也许我用Go切片在错误的心理模型上?

go slice

24
推荐指数
1
解决办法
1万
查看次数