数据分析,机器学习 ---初体验

2018.06.12******************************************************
author:wills

大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产.
这些数据通常是万亿或EB的大小数量级。这些数据收集自各种各样的来源:各种传感器,气候信息,公开的信息,如杂志,报纸,文章。大数据产生的其他例子包括购买交易记录,网络日志,病历,军事监控,视频和图像档案,及大型电子商务。
大数据分析是研究大量的数据的过程中寻找模式,相关性和其他有用的信息,可以帮助企业更好地适应变化,并做出更明智的决策。这里就涉及到对数据的分析,那么我们用什么来分析这些数据呢?

python中有专门为了处理数据开发出来的库numpy,matplotlib安装命令很简单.并且为了进一步简化,我们可以使用一个叫anaconda的工具,它集成了几乎所有数据分析需要使用的相关工具库,然后直接使用jupyter打开,在这个环境下进行数据分析

如何在其他地方使用,可以使用如下命令安装
pip intall numpy
pip install matplotlib

下面通过一张图片来认识了解numpy这个库,以及其中丰富的函数

这里写图片描述

首先我们需要知道,图片,音视频,都是由一串数据流组成的,彩色图片是三维的数据流,黑白照片是二维的数据流

# 先导入相关的模块
import numpy as np
import matplotlib.pyplot as plt
读取图片数据流,存入cat
# 这里需要注意图片的路径不能写错
cat = plt.imread('cat.jpg')
# 获取图片的尺寸,数据流或者维度,结果如下
display(cat,cat.shape)
# 输出结果
array([[[231, 186, 131],
        [232, 187, 132],
        [233, 188, 133],
        ...,
        [100,  54,  54],
        [ 92,  48,  47],
        [ 85,  43,  44]],

       [[232, 187, 132],
        [232, 187, 132],
        [233, 188, 133],
        ...,
        [100,  54,  54],
        [ 92,  48,  47],
        [ 84,  42,  43]],

       [[232, 187, 132],
        [233, 188, 133],
        [233, 188, 133],
        ...,
        [ 99,  53,  53],
        [ 91,  47,  46],
        [ 83,  41,  42]],

       ...,

       [[199, 119,  82],
        [199, 119,  82],
        [200, 120,  83],
        ...,
        [189,  99,  65],
        [187,  97,  63],
        [187,  97,  63]],

       [[199, 119,  82],
        [199, 119,  82],
        [199, 119,  82],
        ...,
        [188,  98,  64],
        [186,  96,  62],
        [188,  95,  62]],

       [[199, 119,  82],
        [199, 119,  82],
        [199, 119,  82],
        ...,
        [188,  98,  64],
        [188,  95,  62],
        [188,  95,  62]]], dtype=uint8)
(456, 730, 3)
# 将图片画出来
plt.imshow(cat)
# 获取cat数据类型
type(cat) # numpy.ndarray 特殊数组类型
# 获取cat数组中数据的类型
cat.dtype 
# dtype('uint8') 无符号int8类型,表示0-255的整数 
#修改cat数组中元素的类型
cat.astype(np.float64)

numpy中最重要的一个形式叫ndarray
n表示n个d(dimension)维度的array数组
python本身支持的数值类型有int,float,complex
Numpy支持比python本身更加丰富的数值类型:

类型 描述
1.bool 布尔型,1个字节 True或False
2.int 整数类型 int64或int32
3.intc 与C中int相同 int32或int64
4.intp 用于索引 int32或int64
5.int8 1字节 -128 ~ 127
6.int16 整数 -32768 ~ 32767
7.int32 整数 -2147483648 ~ 2147483647
8.int64 整数 -9223372036854775808 ~ 9223372036854775807
9.uint8 无符号整数 0 ~ 255
10.uint16 无符号整数 0 ~ 65535
11.uint32 无符号整数 0 ~ 4294967295
12.uint64 无符号整数 0 ~ 18446744073709551615
13.float float64的简写 float64
14.float 半精度浮点 5位指数,10位尾数
15.float32 单精度浮点 8位指数,23为尾数
16.float64 双精度浮点 11位指数,52位尾数
17.complex complex128简写 complex128
18.complex64 复数 由2个32位浮点数表示
19.complex128 复数 由两个64位浮点数表示

在Numpy中上面的数值类型都归于data(data-type),可以使用numpy.dtype(object,align,copy)来指定数值类型。而在数值中,可以使用dtype=参数

numpy中,ndarray有6个参数,分别是:

shape: 数组的形状
dtype:数据类型
buffer:对象暴露缓存区接口
offset:数组数据偏移量
strides:数据步长
order:{‘C’, ‘F’} 以行或者列为主排列顺序

Numpy有5种途径创建数组

1 从python数据结构 列表,元组等转换

2 使用np.arange,np.ones,np.zeros 等numpy原生方法

3 从存储空间读取数据

4 通过使用字符串或者缓存区从原始字节创建数组

5 使用特殊函数,比如random

  • 方法一 原生python列表,元组转换
l = list('12345')
nd = np.array(l)
  • 方法二 arange()函数
    arange()函数是在给定区间创建一些列均匀间隔的值
    numpy.arange(start, stop, step, dtype=None)
    首先设置值所在的区间[开始,停止),这是一个半开半闭区间,能取头不能取尾,step步长设置每个值之间的间隔

在这里我有一句MMP不知当讲不当讲,下面还有无数的内容,结果因为电脑卡了一下,浏览器关闭,啥都没了3个小时的成果就剩这么一丢丢。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。拜

猜你喜欢

转载自blog.csdn.net/qq_41772997/article/details/80670539