python数据处理:NumPy基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python数据处理:NumPy基础相关的知识,希望对你有一定的参考价值。

本文资料来自:Python for Data Analysis, Chapter 4

 

1. NumPy简介

NumPy,Numerical Python简称,是科学计算和数据分析所用的基础包。对于数据分析师,主要关注以下几点:

  a: Fast vectorized arrya operations for data munging and cleaning(数据分析和清洗), subsetting and filtering(和过滤), transformation and any other kind of computations.

  b: Coomn array algortihsm like sorting, unique, and set operations

  c: Efficient descriptive statistics and aggregating/summarizing data

  d: Data alignment(数据调整) and relational data manipulations for merging(合并) and joining together heterogeneous data sets(异构数据集)

  e: Expressing conditional logic as arry expressions instead of loops with if-elif-else branches 存取ndarray会更快速

  f: Group-wise(分组) data manipulations

其中NumPy最常用的功能是a和e,主要作为传递数据的容器,对于比较关系型数据的或者图表类数据集,最常用的还是pandas。

2. NumPy数组:NumPy ndarray

2.1

ndarray:N-dimensional array。NumPy数组是一个多维数组对象(array object),主要包含实际的数据和描述这些数据的元数据(tuple)。 

通常通过调用这些元组来获得实际数据

要记住记下两点:

  同一个NumPy的多维数组的元素是同类型的。

  通过一个正整数元组(tuple)索引的元素表格(通常是元素是数字)。

在NumPy中维度(dimensions)叫做轴(axes),比如三维矩阵,每一个维度都是一个轴。

轴的个数,即数组的维数叫做秩(rank)。比如三维矩阵,秩为3,二维矩阵,秩为2。

维度以一个整数元组来表示,比如二维的一般为(2,3),表示2排3列的一个矩阵,秩为元组的长度:2,第一个维度长度为2,第二个维度长度为3。

2.2 

首先:import numpy as ynp

  2.2.1: creating ndarray:array function

    技术分享 

           技术分享

    Numpy提供一个arrange函数,返回一个array数组而不是list

  技术分享

   np.arrange(32).reshape((8,4))生成0-31的8*4矩阵

   2.2.2: 基本索引(indexing)和slicing

  技术分享

  arr[n:m]:截取从第n为到底m-1位的数值

  要注意的是,array slice是原始数据的一个映射,对此进行的任何操作都会反映到原始数据上。可以说用copy()函数保留原始数值。

  技术分享

   2.2.2: 常用indexing 

  技术分享

  np.ix_函数:可以将两个一维整数型数组转换成一个索引组合,调取这个矩阵组合里面所有的数值

  技术分享

  上述就是调取了(1,0),(1,3),(1,1),(5,0),(5,3),(5,1),(7,0),(7,3),(7,1)共9个值

2.3 常用函数

  2.3.1: 数学类

  包括sqrt,exp,abs,add,subtract等

  np.mean()

  np.sum()

  axis参数:axis=1表示按照行,axis=0表示按照列

  2.3.2: sorting排列,unique

  函数:sort()

  numpy中最常用的一个组合逻辑(set logic)运算就是unique(),这个函数可以去掉数列中多次重复出现的值,返回形式为arra

技术分享 

  2.3.3: 生成随机数

  np.random.normal(size=(4,4))生成按照正态分布排列的4*4矩阵

  np.random.randn(5,4)生成5*4矩阵,按照正态分布排列,均值为0,标准差为1.

 

 

注:虽然这算是一个基础的总结,但不能保证理解全部准确无误。随着对不同函数的多次使用,如果有新的体会,我会及时回来更新。

 

 

 

    

以上是关于python数据处理:NumPy基础的主要内容,如果未能解决你的问题,请参考以下文章

python数据分析基础之Numpy库详解

python数据分析基础之Numpy库详解

python数据分析基础之Numpy库详解

Python的那些事---数据分析---NumPy基础

Python的那些事---数据分析---NumPy基础

python数据分析 Numpy基础 数组和矢量计算