数据分析1-1

1.

(1)数据分析:是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律
(2)数据分析三剑客:Numpy,Pandas,Matplotlib
(3)NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算
  提供大量的数学函数库

numpy中seriel,dataframe重点
matplotlib:直方图和散点图等等其他图
前两个是数据分析相关的,后边的这个是绘图相关的

一、创建ndarray

2. 使用np.array()创建

例1:一维数组创建

import numpy as np
np.array([1,2,3,4,5])

结果:

array([1, 2, 3, 4, 5])

例2:二维数据创建

np.array([[1,2,3.2],[4,5,6]])

结果:

array([[ 1. ,  2. ,  3.2],
       [ 4. ,  5. ,  6. ]])
注意:
numpy默认ndarray的所有元素的类型是相同的
如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int

 例3:使用matplotlib.pyplot获取一个numpy数组,数据来源于一张图片

import matplotlib.pyplot as plt
plt.imread('./cat.jpg')

运行之后,返回的是一个三维数组,外边有三层包裹

结果:

例4:

import matplotlib.pyplot as plt
#cat_img_arr = plt.imread('./cat.jpg')
cat_img_arr = plt.imread('cat.jpg')
plt.imshow(cat_img_arr)

运行之后,得到的结果:

例5:

import matplotlib.pyplot as plt
#cat_img_arr = plt.imread('./cat.jpg')
cat_img_arr = plt.imread('cat.jpg')
plt.imshow(cat_img_arr)
plt.imshow(cat_img_arr-50)

运行之后,得到下面的结果:减去50之后的结果

例6:

import matplotlib.pyplot as plt
#cat_img_arr = plt.imread('./cat.jpg')
cat_img_arr = plt.imread('cat.jpg')
plt.imshow(cat_img_arr)
plt.imshow(cat_img_arr-50)
cat_img_arr

运行结果:

打印出了这个数组

例7:

import matplotlib.pyplot as plt
#cat_img_arr = plt.imread('./cat.jpg')
cat_img_arr = plt.imread('cat.jpg')
plt.imshow(cat_img_arr)
plt.imshow(cat_img_arr-50)
cat_img_arr.shape        #数组的形状应该得到的是下面的数组(456,730,3)

展示元组:也就是数组的形状

前两个表示像素,第三个表示颜色

结果:

 

2. 使用np的routines函数创建

(1)包含以下常见创建方法: 

例1:

例2:

例3:等差数列

用法:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

返回20个元素:

例4:

例5:

固定随机数,5行6列,随机因子

#固定时间种子,产生的随机数就固定下来了

 

例6:标准正态分布

例7:生成0-1的随机数

三.ndarray的属性

例1:

得到下面的结果:

核心重点:索引和切片的处理

 123

 四.ndarray的基本操作

1. 索引¶
一维与列表完全一致 多维时同理

例1:索引查找结果,修改结果

 

例2:索引:一维与列表完全一致 多维时同理

(1)获取二维数组前两行,顾头不顾尾

(2)获取二维数组前两列数据,逗号左边是行数据,逗号右边是列数据

(3)获取数据前两行和前两列数据

(4)将数据反转,例如[1,2,3]==>[3,2,1]

 ::进行切片

(5)列倒序

(6)全部倒序

arr[::-1,::-1]

 例3:

(1)如何将图片进行全置倒序处理之后,需要保存一下

带颜色的图片是三维的,查看一下形状

(3)下面是上下倒置的结果:

(4)下面是左右倒置的结果

 

(5)下面是颜色倒置的结果:

例4:变形

使用arr.reshape()函数,注意参数是一个tuple!
基本使用
1.将一维数组变形成多维数组

将上边的array转换成 一维的,7行5列,再转换成5行7列的

扩展:转化成三维的

例5:图片倒置

#对一维数组中所有的元素倒置

例5;级联(numpy中理解成合并就行),

panda中不能这么理解

 

(1)axis表示的是轴向的意思

 axis=0:轴向     0表示的是竖直的轴向 1水平的轴向

 

看一下arr的形状

concatentate必须对齐才行,否则会报错

 

 

注意上图,只有二维和二维的才能合并,行和列一定要对齐才行

 

例6:

(1)合并两张图片

 axis=1表示左右,竖向连接,axis=0表示上下,横向连接

 

 

 

(2)水平级联hstack和竖直级联vstack

 

 

 

例7.  切分:

下面我们看下是如何切分的?

(1)

(2)下面是切分之后的结果

axis==>表示的是横着切

下边表示的是竖着切

(3)

 切分照片?

 

 

 

 

 

 (4)

 

 

聚合操作:

(1)

 

(2)np.max/np.min

 对所有的求和

 

求方差

可以指定轴向,将三维数组中每个轴向的第三个数组进行求方差

 

广播机制:

 (1)

 

通过广播机制进行相加

(2)

 

缺失的数据通过已有的数据进行填充

 

(3)

 

 

 

 

缺失的维度会自动补齐这个数值

 

 ndarry的排序

 

(1)快速排序

第一个不改变输入,第二个改变输入,第一种是升序

 

 下边的第一种也是不改变

139得到的结果是:

array([3,5,6,7,8])

 

 

posted @ 2019-06-10 11:09  studybrother  阅读(236)  评论(0编辑  收藏  举报