我正在hdf = pandas.HDFStore('Survey.h5')通过pandas包处理从h5文件加载的调查数据.在此范围内DataFrame,所有行都是单个调查的结果,而列是单个调查中所有问题的答案.
我的目标是将此数据集缩小到一个较小的数据集,DataFrame仅包括某个问题上具有特定描述答案的行,即此列中的所有相同值.我能够确定具有此条件的所有行的索引值,但我找不到如何删除此行或仅使用这些行创建新的df.
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)
我有点猜测,因为它,我的代码很慢.任何了解其工作原理的人的帮助都会受到赞赏.提前致谢.
如果事实证明我不应该使用布尔数组索引我的矩阵,而是使用整数(索引)列表 - 这也是我很乐意找到的东西.哪个更有效率.
最后 - 这是一个很大的矩阵,如果这可以在广播中发生,那么奖励积分.
我在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,mo或da列.目前,我正在进行mo分组,有时非常笨重,尤其是在多年转换的时候.一种更优雅的方法可以让我的生活变得更加轻松.
提前致谢!
在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) 为什么都是&[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]?在其他条件下,这种强制发生了吗?
我想在Golang中生成一系列数字,但我找不到任何内置函数.
基本上我想在Golang中等效PHP的范围函数:
array range ( mixed $start , mixed $end [, number $step = 1 ] )
Run Code Online (Sandbox Code Playgroud)
在创建数字类型的切片/数组时,您希望使用数字序列填充/初始化它.
golang中一个切片的cap和len有什么区别?
根据定义:
切片具有长度和容量.
切片的长度是它包含的元素数.
切片的容量是基础数组中元素的数量,从切片中的第一个元素开始计算.
x := make([]int, 0, 5) // len(b)=0, cap(b)=5
Run Code Online (Sandbox Code Playgroud)
len是否仅表示非空值?
是否有更简洁的方法来获取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) 首先,我想澄清一个问题:它是关于slice()函数,而不是列表或字符串之类的a[5:4:3].
文档提到这个函数在NumPy中使用并没有给出使用示例(它说如何使用它但是没有说何时使用它).而且,我从来没有在任何Python程序中看到过这个函数.
什么时候应该使用slice()普通Python编程时使用该函数(没有NumPy或SciPy)?任何例子将不胜感激.
我们可以使用地图轻松完成:
item, ok := myMap["index"]
Run Code Online (Sandbox Code Playgroud)
但不是切片:
item, ok := mySlice[3] // panic!
Run Code Online (Sandbox Code Playgroud)
感到惊讶的是之前没有被问过.也许我用Go切片在错误的心理模型上?
slice ×10
arrays ×3
go ×3
python ×3
rust ×2
coercion ×1
data.table ×1
date-range ×1
indexing ×1
pandas ×1
python-2.7 ×1
python-3.x ×1
r ×1
scipy ×1
subset ×1
swift ×1