加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

数据分析

发布时间:2020-12-20 10:49:56 所属栏目:Python 来源:网络整理
导读:一什么是数据分析? 数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。 二使用python做数据分析的常用库 numpy 基础数值算法 scipy 科学计算 matplotlib 数据可视化 pandas 序列

一什么是数据分析?

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

二使用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,6])
print(a)
# [1 2 3 4 5 6]

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

import numpy as np
a = np.arange(0,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,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,6])
print(type(ary),ary,ary.shape)
# <class ‘numpy.ndarray‘> [1 2 3 4 5 6] (6,)
#二维数组
ary = np.array([
    [1,4],[5,6,7,8]
])
print(type(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,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,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) 两页 两行 两列
"""
print(a[0])
"""
[[1 2]
 [3 4]]
"""
print(a[0][0])
#[1 2]
print(a[0][0][0])
#1
print(a[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
"""

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读