数据分析 : 是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律.

数据分析三剑客 -  Numpy Pandas Matplotlib

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
# Numpy 基于一维或多维的数组    数组开辟的内存是连续的  数据容器
import numpy as np

# array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0) 数据源 默认整型
arr1 = np.array([1,2,3,4,5])    一维

arr1 = np.array([[1,2,3],[3,4,"two"]])  二维
# 传进来的列表中包含了不同的数据类型,则统一为统一类型,优先级:str>float>int
# 加载一张图片进来
import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
img_arr = plt.imread('./toy.jpg') #读图片 图像
# img_arr     # 三维数组
plt.imshow(img_arr)    # 显示图片

img_arr = img_arr-10
plt.imshow(img_arr)
--------------------------------------
np routines 函数创建
img_arr.shape  #(191, 199, 3)    x y 3维
np.full(shape=(5,6,3),fill_value=12) # 几行几列 几纬度  数据填充
np.linspace(0,100,10)  # 基于等差数列的一位数组(不能,参数没有shape)
np.arange(0,100,3)     # 一维数组
---------------------------------------
np.random.randint(0,100,size=(6,7)) #randint(low, high=None, size/shape=None, dtype='l')

# 随机性固定 随机因子
np.random.seed(10)
np.random.randint(0,100,size=(6,7))

np.random.random(size=(4,5)) #(size=None)  [0.0, 1.0)半闭合
np.eye(5) 返回一个二维数组,对角线上是1,其他地方是0。
# ndarray的属性
ndim 维度 
shape 形状(各维度的长度)
size  总长度
dtype 元素类型
img_arr.ndim 3
img_arr.size    114027
img_arr.shape  (191, 199, 3)
img_arr.dtype  dtype('uint8') 
type(img_arr)  numpy.ndarray
ndarray 索引
一维与列表一样,多维时候同理
arr1[0][0]
--------- 切片---------------
np.random.seed(1)
arr = np.random.randint(0,100,size=(5,6))
arr[:2]   # 获取前两行
arr[:,:2]    # 获取前两列     #(行,列,三维度)
arr[0:2,:2]   #前2行/2列
---------- 倒叙 ------------
# arr[::-1]    行倒叙
# arr[:,::-1]    列倒序
# arr[::-1,::-1]  行列都倒叙
# 图片各种翻转
plt.imshow(img_arr)
plt.imshow(img_arr[:,::-1,:])  # 左右转 列倒
plt.imshow(img_arr[::-1,:,:])   # 上下转 列倒序
plt.imshow(img_arr[::-1,::-1,::-1]) # 全倒序
变形 ?   reshape
一维变二维   -1是自动计算
二维变一维   一维
# 合并三张照片-------------------------------
img_arr = plt.imread('./toy.jpg')
im3 = np.concatenate((img_arr,img_arr,img_arr),1)
im9 = np.concatenate((im3,im3,im3),0)\ 
plt.imshow(im9)
# -- 切图 ----------------------------------
plt.imshow(img_arr)
plt.imshow(img_arr[40:110,50:133,:])

# 求和
a1.sum(axis=0) #a.sum(axis=None, dtype=None, out=None, keepdims=False)
# 排序
np.sort(a1,axis=1)  #不改变输入
ndarray.sort() 本地处理 不占用空间 但改变输入

# Pandas

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄