0. 问题描述
每次使用Numpy,遇到需要从(A,B,C)三维数组中提取(A,B)、(A,C)或者(B,C)或者(A,)这几个维度数据时,总是忘记该如何切片,网上搜到的又太详细,这里做个笔记方便自己下次使用时查找。
举个例子,如果我现在有一个 X =(10,20,30)的三维数组:
那么X = [ 0:9,0:19,0:29 ] / X = [ :,:,: ] (两种写法效果一样),都是取出X的全部数据,基于此,接下来就好切片了
1. (A,B,C)——> (A,B)
X_New = X[ :,:,0]

; 2. (A,B,C)——> (A,C)
X_New = X[ :,0,:]

3. (A,B,C)——> (B,C)
X_New = X[ 0,:,:]

; 4. (A,B,C)——> (A,)
X_New = X[ :,0,0]

如果你想在某个维度上取特定的一段值,直接修改 ” :” 前后的数字就可以啦,Nice!
Original: https://blog.csdn.net/qq_43580646/article/details/121913746
Author: 一只殿鹿
Title: Python | Numpy三维数组维度变换/提取
相关阅读
Title: python学习日记(分组运算)
基于Pandas与Numpy,我们可以执行许多复杂的分组运算
GroupBy分组机制
第一个阶段,pandas对象(无论是Series、DataFrame还是其他的)中的数据会根据我们所提供的一个或多个键被拆分(split)为多组。拆分操作是在对象的特定轴上执行的。例如,DataFrame可以在其行(axis=0)或列(axis=1)上进行分组。然后将一个函数应用(apply)到各个分组并产生一个新值。最后,所有这些函数的执行结果会被合并(combine)到最终的结果对象中。结果对象的形式一般取决于数据上所执行的操作。
数据流如图所示:

我们建立一个Datafram数据集:
import numpy as np
import pandas as pd
df = pd.DataFrame({'key1' : ['a', 'a', 'b', 'b', 'a'],
'key2' : ['one', 'two', 'one', 'two', 'one'],
'data1' : np.random.randn(5),
'data2' : np.random.randn(5)})
这里我们选择按照key2进行分组,并计算data2的平均值,我们这里要用的是:访问data2,并根据key2调用GroupBy的mean方法来计算分组平均值:
grouped = df['data2'].groupby(df['key2'])
data2_average = grouped.mean()
这时,我们如果传入key1、key2两个索引则得出不同结果:
key1 key2
a one 0.880536
two 0.478943
b one -0.519439
two -0.555730
在上述例子中,分组键为series,其实key1、key2可以是任何长度适当的数组。
另外,GroupBy的size方法可以返回一个含有分组大小的Series:
size = f.groupby(['key1', 'key2']).size()
print(size)
key1 key2
a one 2
two 1
b one 1
two 1
对分组进行迭代
GroupBy对象支持迭代,可以产生一组二元元组(由分组名和数据块组成)
for name, group in df.groupby('key1'):
print(name)
print(group)
结果为按照key1的不同分组
key1 data1 data2
0 a -1.088142 0.894045
1 a -0.040777 0.552952
4 a 1.116719 0.979438
b
key1 data1 data2
2 b -2.582169 0.131496
3 b -2.284920 1.906700
当有多个键时,默认情况下,元组的第一个元素是由键值组成的元组:
[En]
When there are multiple keys, the first element of a tuple is a tuple consisting of key values by default:
for (k1, k2), group in df.groupby(['key1', 'key2']):
print((k1, k2))
print(group)
输出结果如图所示:
key1 key2 data1 data2
0 a one 1.122848 0.658638
4 a one -1.575574 0.096988
('a', 'two')
key1 key2 data1 data2
1 a two -1.242042 0.371779
('b', 'one')
key1 key2 data1 data2
2 b one -0.075 0.492735
('b', 'two')
key1 key2 data1 data2
3 b two -0.298669 0.039236
Original: https://blog.csdn.net/zw233333/article/details/124991494
Author: 吃pepper的dog酱
Title: python学习日记(分组运算)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/318894/
转载文章受原作者版权保护。转载请注明原作者出处!