Python处理数据集常用到的操作

Python处理数据集常用到的操作

  • 一、矩阵和向量 numpy.narray
    • 获取矩阵的维度 ndarray.shape
    • 获取矩阵的最大最小值 np.max|np.min
    • 获取矩阵和目标值相等的那个序列 np.where
    • 取向量里最接近特定值的数,当特定值在向量里两个数中间时,取向量里值较大的数 np.where
    • python将二维数组升为一维数组 或 二维降为一维
    • 两个或多个矩阵合并 hstack() | vstack()
    • Python中loc和iloc的用法
  • 二、列表操作
    • 找到列表里面的重复的元素 Counter
    • 二维列表合并成一维列表 functools
  • 三、DataFrame的操作
    • 将array转化为dataframe
    • 删除列索引重复的列 duplicated()
    • 两个DataFrame合并
  • 四、字典操作 dict{}
    • 将列表转换为字典

一、矩阵和向量 numpy.narray

现有一个二维数组,我们想取出其一行,或者按照行输出

import numpy as np
# array1 ={ndarray:(50,100)}[[],[],[],...,[]]
array2 = np.array([[1,2,3],[4,5,6]]). #这是一个2*3的二维矩阵
# 

获取矩阵的维度 ndarray.shape

apple = array2.shape
>>> apple = {tuple:2}(2,3)

tuple元组的定义 Python的元组与列表类似,
不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
apple[0]
>>> 2
apple[1]
>>> 3

获取矩阵的最大最小值 np.max|np.min

np.max(array2)
>>> 6
np.min(array2)
>>> 1

获取矩阵和目标值相等的那个序列 np.where

index = np.where(array2 == 3)
>>>index = {tuple:2}{array([0]),array([2])}

取向量里最接近特定值的数,当特定值在向量里两个数中间时,取向量里值较大的数 np.where

import numpy as np
a=[4,5,6,7,8]
a=np.array(a)
D2=5.5
b=abs(a-D2)
bmin=min(b)
index=np.where(b==bmin)
c=a[index]
d=max(c)
print(d)
如果有两个值到目标值的距离是一样的,index就会返回一个tuple

python将二维数组升为一维数组 或 二维降为一维

参考
https://blog.csdn.net/weixin_46713695/article/details/126725305
import numpy as np
a = np.array([[1, 2], [3, 4], [9, 8]])
b = a.flatten()
print(b)
>>> b = {ndarray:(6,)}[1 2 3 4 9 8]

两个或多个矩阵合并 hstack() | vstack()

完全参考Python中numpy数组的拼接、合并

矩阵合并需要使用到的方法就是hstack()以及vstack(),这两个方法的区别就在于是通过行还是列进行合并

import numpy as np
a = np.matrix([1,2,3],[4,5,6])
b = np.matrix([9,8,7],[3,2,1])
np.hstack((a,b))
>>>

Python中loc和iloc的用法

二、列表操作

找到列表里面的重复的元素 Counter

参考
https://jenrey.blog.csdn.net/article/details/117018229?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-117018229-blog-119107469.pc_relevant_vip_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-117018229-blog-119107469.pc_relevant_vip_default&utm_relevant_index=2

from collections import Counter
 
a = [29,36,57,12,79,43,23,56,28,11,14,15,16,37,24,35,17,24,33,15,39,46,52,13]
b = dict(Counter(a))
print ([key for key,value in b.items()if value > 1]) #只展示重复元素
print ({key:value for key,value in b.items()if value > 1}) #展现重复元素和重复次数

二维列表合并成一维列表 functools

import functools, operator
nums_2d = [[1,2,3],[4,5,6,7],[8,9]]
nums_1d = functools.reduce(operator.concat, nums_2d)
print(nums_1d)
>>> [1,2,3,4,5,6,7,8,9]
或者可以用extend方法,更常规

nums_2d = [[1,2,3],[4,5,6,7],[8,9]]

nums_1d = []
for n in nums_2d:
 nums_1d.extend(n)

print(nums_1d)
# 参考资料
https://blog.csdn.net/Yuki1127918/article/details/123284441

三、DataFrame的操作

将array转化为dataframe

删除列索引重复的列 duplicated()

如果需求是列标签相同的只保留左边第一个,比如列名分别是 abcba,保留 abc 三列,后边两列前边已经有了,就删除,那么可以这么写:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.arange(15).reshape(3, 5),
                  columns=[*'abcba'])
df
'''
    a   b   c   b   a
0   0   1   2   3   4
1   5   6   7   8   9
2  10  11  12  13  14
'''

df.loc[:, ~df.columns.duplicated()]
'''
    a   b   c
0   0   1   2
1   5   6   7
2  10  11  12
'''

作者:知乎用户
链接:https://www.zhihu.com/question/548513295/answer/2678050709
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

两个DataFrame合并

参考
https://www.cnblogs.com/math98/p/14252591.html

四、字典操作 dict{}

将列表转换为字典

你可能感兴趣的:(python,python,numpy,开发语言)