matplotlib数据可视化分析(1)-- numpy读取文件以及 ndarray 的基本操作

matplotlib z支持函数式绘图和面向对象式绘图。

  1. 函数式绘图,参考了 matlib 里面的绘图函数语法,简单容易上手。
  2. 面向对象式绘图,更懂 matplotlib 底层架构,有更多的功能。

matplotlib 使用控制台绘图

In [2]: import  matplotlib.pyplot as plt 

In [3]: plt.plot([1,2,3],[3,2,1])
Out[3]: []

In [4]: plt.show()

matplotlib数据可视化分析(1)-- numpy读取文件以及 ndarray 的基本操作_第1张图片

numpy 简介

  • numpy 是Python 的开源的数值计算扩展
  • 可用来存储和处理大型矩阵,比 python 自身数据结构要高效
  • Numpy 将 Python 变成一种免费的强大的 Matlab 系统

创建 ndarray 的三种方式

  1. 从 python 的基础数据对象转化

     In [7]: import numpy as np
     
     In [8]: a = [1,2,3,4]
     
     In [9]: x1 = np.array(a)
     
     In [10]: x1
     Out[10]: array([1, 2, 3, 4])
     
     In [11]: type(x1)
     Out[11]: numpy.ndarray
    
  2. 通过 numpy 内置的函数生成

     In [14]: x2 = np.arange(11)
     
     In [15]: x2
     Out[15]: array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
    
  3. 从硬盘读取数据
    一般包括从数据库或者文件读取。
    演示一个从文件中读取数据的 demo
    文件如图所示 :
    matplotlib数据可视化分析(1)-- numpy读取文件以及 ndarray 的基本操作_第2张图片

我们想要读取这份数据的 Open,Close 以及 Volume 三列的数据。

import numpy as np
x = np.loadtxt('000001.csv', delimiter=',', skiprows=1,
               usecols=(1, 4, 6), unpack=False)
print x

delimiter 是使用的分隔符, skiprows=1 意思为跳过第一行标题,usecols=(1, 4, 6) 意思是取第 1,4,6 列的值。

matplotlib数据可视化分析(1)-- numpy读取文件以及 ndarray 的基本操作_第3张图片

打印结果,可以看到三列数据放在一个数据里面,我们可以设置 unpack = True ,将每一列的数据单独展示。

import numpy as np
open, close, volume = np.loadtxt('000001.csv', delimiter=',', skiprows=1,
               usecols=(1, 4, 6), unpack=True)

print open, close, volume

ndarray 的基本操作

基本的运算

import numpy as np

c = np.arange(11)
# c
print c
# c + c
print c+c
# c*2
print c*2
# c-c
print c-c
# c/2
print c/2
# c/2.0
print c/2.0

取值的截取

# coding:utf-8
import numpy as np

c = np.arange(11)
# 取最后一个数
print c[-1]
# 截取
print c[0:5]
print c[5:]
print c[::2]
print c[::-1]

常用函数

# coding:utf-8
import numpy as np

# 生成 10 个 1-100 之间的随机数
c = np.random.randint(1, 100, 10)
print c

# np.func(x)
# x.func()

# 取数组最小值
print np.min(c)
print c.min()

# 取数组最大值
print np.max(c)
print c.max()

# 取均值
print np.mean(c)
print c.mean()

# 取中位数
print np.median(c)
# print c.median()

# 取方差
print np.var(c)
print c.var()

# 排序
d = np.sort(c)
print c
print d

print "-"*10

print c
c.sort()
print c

一般来说,调用函数的两种用法的效果是一样的。
但是要注意两种调用函数进行排序,对数组自身的影响。

你可能感兴趣的:(数据分析)