草庐IT

python - Pandas DataFrame 按天/小时/分钟切片

我有带有日期时间索引的pandasDataframe,例如“YYYY-MM-DDHH:MM:SS”。IndexParameter2007-05-0214:14:08134.82007-05-0214:14:32134.82007-05-0214:14:41134.82007-05-0214:14:53134.82007-05-0214:15:01134.82007-05-0214:15:09134.8......2007-05-3023:08:02105.92007-05-3023:18:02105.92007-05-3023:28:02105.92007-05-3023:38:031

python - 访问 3D numpy 数组的切片

我有一个float的3Dnumpy数组。我索引数组不正确吗?我想访问切片124(索引123),但看到此错误:>>>arr.shape(31,285,286)>>>arr[:][123][:]RuntimeerrorTraceback(mostrecentcalllast):File"",line1,inIndexError:index123isoutofboundsforaxis0withsize31这个错误的原因是什么? 最佳答案 arr[:][123][:]是逐段处理的,不是整体。arr[:]#justacopyof`arr`;

python - django - 在结果有限的查询集上的切片/过滤器之后过滤

无法理解为什么我无法在查询集上的切片之后进行过滤以及发生了什么。stuff=stuff.objects.all()stuff.count()=7如果我再去extra_stuff=stuff.filter(stuff_flag=id)extra_stuff.count()=6.一切都很好,我的新查询集在extrastuff中没有问题stuff=stuff.objects.all()[:3]extra_stuff=stuff.filter(stuff_flag=id)我收到错误消息“一旦获取了切片,就无法过滤查询。”如何在限制结果数量的查询集上进一步过滤? 最佳

Python:如何根据键值对字典进行切片?

假设我有一个这样构建的字典:d={0:1,1:2,2:3,10:4,11:5,12:6,100:7,101:8,102:9,200:10,201:11,202:12}我想创建一个子字典d1,方法是对d进行切片,使d1包含以下键:0,1,2,100,101,102。最终输出应该是:d1={0:1,1:2,2:3,100:7,101:8,102:9}考虑到我的真实字典包含超过2,000,000个项目,是否有一种高效的Pythonic方式来执行此操作?我认为这个问题适用于键为整数的所有情况,当切片需要遵循某些不等式规则,以及当最终结果需要是一堆切片放在同一个词典。

python - 沿任意维度切片 numpy 数组

假设我有一个(40,20,30)numpy数组,并且我有一个函数,在一些工作之后将沿着选定的输入轴返回输入数组的一半。有自动的方法吗?我想避免这样丑陋的代码:defmy_function(array,axis=0):...ifaxis==0:returnarray[:array.shape[0]/2,:,:]-->(20,20,30)arrayelifaxis=1:returnarray[:,:array.shape[1]/2,:]-->(40,10,30)arrayelifaxis=2:returnarray[:,:,:array.shape[2]/2]-->(40,20,15)ar

python - 按名称列表对 Pandas 中的多个列进行切片

我正在尝试以两种不同的方法在Pandas数据框中选择多个列:1)通过列号,例如,第1-3列和第6列以后。和2)通过列名列表,例如:years=list(range(2000,2017))months=list(range(1,13))years_month=list(["A","B","B"])foryinyears:forminmonths:y_m=str(y)+"-"+str(m)years_month.append(y_m)然后,years_month将产生以下内容:['A','B','C','2000-1','2000-2','2000-3','2000-4','2000-5'

python - 使用所需行列表对 numpy 数组进行切片

我有一个numpy二维数组A和一个行号列表row_set。我怎样才能得到新的数组B例如如果row_set=[0,2,5],thenB=[A_row[0],A_row[2],A_row[5]]?我想到了这样的事情:defslice_matrix(A,row_set):slice=array([rowforrowinAifrow_numinrow_set])但我不知道,我怎样才能得到row_num。 最佳答案 使用take():In[87]:m=np.random.random((6,2))In[88]:mOut[88]:array([

python - 获取 numpy 数组中第 k 个维度的第 i 个切片

我有一个n维的numpy数组,我想获取第k的第i切片方面。一定有比这更好的了#...elifk==5:b=a[:,:,:,:,:,i,...]#... 最佳答案 b=a[(slice(None),)*k+(i,)]手动构造索引元组。如Pythonlanguagereference中所述,形式的表达a[:,:,:,:,:,i]转换为a[(slice(None),slice(None),slice(None),slice(None),slice(None),i)]我们可以通过直接构建元组而不是使用切片符号来达到相同的效果。(有一个小警告

python - 在 python 中反转切片

有什么简单的方法可以在python中反转列表切片吗?把所有东西都给我,除了一片?例如:给定列表a=[0,1,2,3,4,5,6,7,8,9]我希望能够提取[7,8,9,0,1,2]即除[3:7]之外的所有内容。从逻辑上考虑,我认为a[-3:3]会给我我想要的,但它只返回一个空列表。我更喜欢适用于python2和3的解决方案 最佳答案 切片不会像那样环绕,但a[-3:]+a[:3]会给你那个列表。 关于python-在python中反转切片,我们在StackOverflow上找到一个类似的

python - 分配如何与列表切片一起使用?

Python文档说切片列表会返回一个新列表。现在,如果返回"new"列表,我有以下与“分配给切片”相关的问题a=[1,2,3]a[0:2]=[4,5]printa现在输出将是:[4,5,3]返回某物的东西怎么会出现在表达式的左侧?是的,我阅读了文档,它说这是可能的,既然切片列表返回一个"new"列表,为什么要修改原始列表?我无法理解其背后的机制。 最佳答案 您混淆了两个使用非常相似语法的不同操作:1)切片:b=a[0:2]这会复制a的切片并将其分配给b。2)切片赋值:a[0:2]=b这用b的内容替换a的切片。虽然语法相似(我想是设计