首页 > 其他 > 详细

数据分析

时间:2019-08-30 23:11:19      阅读:86      评论:0      收藏:0      [点我收藏+]

一什么是数据分析?

数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。

二使用python做数据分析的常用库

  1. numpy 基础数值算法

  2. scipy 科学计算

  3. matplotlib 数据可视化

  4. pandas 序列高级函数

三numpy概述

  1. Numerical Python,数值的Python,补充了Python语言所欠缺的数值计算能力。

  2. Numpy是其它数据分析及机器学习库的底层库。

  3. Numpy完全标准C语言实现,运行效率充分优化。

  4. Numpy开源免费。

(一)numpy历史

  1. 1995年,Numeric,Python语言数值计算扩充。

  2. 2001年,Scipy->Numarray,多维数组运算。

  3. 2005年,Numeric+Numarray->Numpy。

  4. 2006年,Numpy脱离Scipy成为独立的项目。

(二)numpy的核心:多维数组

  1. 代码简洁:减少Python代码中的循环。

  2. 底层实现:厚内核(C)+薄接口(Python),保证性能。

四numpy基础

(一)ndarray数组

用np.ndarray类的对象表示n维数组

 

#numpy演示
import numpy as np
ary = np.array([1, 2, 3, 4, 5, 6])
print(ary, type(ary))
print(ary + 10)
print(ary * 3)
print(ary + ary)
"""
[1 2 3 4 5 6] <class ‘numpy.ndarray‘>
[11 12 13 14 15 16]
[ 3  6  9 12 15 18]
[ 2  4  6  8 10 12]
"""

 

1.内存中的ndarray对象

元数据(metadata)

  存储对目标数组的描述信息,如:dim count、dimensions、dtype、data等。

实际数据

  完整的数组数据

  将实际数据与元数据分开存放,一方面提高了内存空间的使用效率,另一方面减少对实际数据的访问频率,提高性能。

2.ndarray数组对象的特点

 

  • Numpy数组是同质数组,即所有元素的数据类型必须相同
  • Numpy数组的下标从0开始,最后一个元素的下标为数组长度减1

 

3.ndarray数组对象的创建

np.array(任何可被解释为Numpy数组的逻辑结构)

import numpy as np
a = np.array([1, 2, 3, 4, 5, 6])
print(a)
# [1 2 3 4 5 6]

np.arange(起始值(0),终止值,步长(1))

import numpy as np
a = np.arange(0, 5, 1)
print(a)
# [0 1 2 3 4]
b = np.arange(0, 10, 2)
print(b)
# [0 2 4 6 8]

np.zeros(数组元素个数, dtype=‘类型‘)

import numpy as np
a = np.zeros(10)
print(a)
# [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
b = np.zeros(10, dtype=float32)
print(b)
# [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]

np.ones(数组元素个数, dtype=‘类型‘)

import numpy as np
a = np.ones(10)
print(a)
# [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
b = np.ones((3, 3, 4), dtype=int32)#三页 三行 四列
print(b)
"""
[[[1 1 1 1]
  [1 1 1 1]
  [1 1 1 1]]

 [[1 1 1 1]
  [1 1 1 1]
  [1 1 1 1]]

 [[1 1 1 1]
  [1 1 1 1]
  [1 1 1 1]]]
"""
# 创建一个结构像b的数组 元素都为0
e = np.zeros_like(b)
print(e) 
#创建5个五分之一的数组
print(np.ones(5)/5)
# [0.2 0.2 0.2 0.2 0.2]

 

 

ndarray对象属性的基本操作

数组的维度:np.ndarray.shape

import numpy as np
ary = np.array([1, 2, 3, 4, 5, 6])
print(type(ary), ary, ary.shape)
# <class ‘numpy.ndarray‘> [1 2 3 4 5 6] (6,)
#二维数组
ary = np.array([
    [1,2,3,4],
    [5,6,7,8]
])
print(type(ary), ary, ary.shape)
#<class ‘numpy.ndarray‘>
 [[1 2 3 4]
 [5 6 7 8]] (2, 4)

 

元素的类型:np.ndarray.dtype

import numpy as np
ary = np.array([1, 2, 3, 4, 5, 6])
print(type(ary), ary, ary.dtype)
#<class ‘numpy.ndarray‘> [1 2 3 4 5 6] int64
#转换ary元素的类型
b = ary.astype(float)
print(type(b), b, b.dtype)
#<class ‘numpy.ndarray‘> [1. 2. 3. 4. 5. 6.] float64

#转换ary元素的类型
c = ary.astype(str)
print(type(c), c, c.dtype)
#<class ‘numpy.ndarray‘> [‘1‘ ‘2‘ ‘3‘ ‘4‘ ‘5‘ ‘6‘] <U21

 

import numpy as np

# 维度
ary = np.arange(1, 7)
print(ary, ary.shape)
#[1 2 3 4 5 6] (6,)
ary.shape = (2, 3)
print(ary, ary.shape)
"""
[[1 2 3]
 [4 5 6]] (2, 3)
"""

# 元素的数据类型
print(ary, ary.dtype)
"""
[[1 2 3]
 [4 5 6]] int64
"""
# ary.dtype = ‘int64‘
# print(ary, ary.dtype)
ary = ary.astype(float64)
print(ary, ary.dtype)
"""
[[1. 2. 3.]
 [4. 5. 6.]] float64
"""

 

数组元素的个数:np.ndarray.size

import numpy as np
ary = np.array([
    [1,2,3,4],
    [5,6,7,8]
])
#观察维度,size,len的区别
print(ary.shape, ary.size, len(ary))
# (2, 4)  8  2

数组元素索引(下标)

  数组对象[..., 页号, 行号, 列号]

  下标从0开始,到数组len-1结束。

import numpy as np
a = np.array([[[1, 2],
               [3, 4]],
              [[5, 6],
               [7, 8]]])
print(a, a.shape)
"""
[[[1 2]
  [3 4]]

 [[5 6]
  [7 8]]] (2, 2, 2) 两页 两行 两列
"""
print(a[0])
"""
[[1 2]
 [3 4]]
"""
print(a[0][0])
#[1 2]
print(a[0][0][0])
#1
print(a[0, 0, 0])
#1
for i in range(a.shape[0]):  #循环页
    for j in range(a.shape[1]): #循环行
        for k in range(a.shape[2]): #循环列
            print(a[i, j, k])
"""
1
2
3
4
5
6
7
8
"""

 

数据分析

原文:https://www.cnblogs.com/maplethefox/p/11437073.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!