Numpy基础

什么是numpy?

  Numpy是Numerical Python 的简称,它是python数值计算中最为重要的基础包.大多数计算包都提供了基于NumPy的科学函数功能,将NumPy的数组对象作为数据交换的通用语.

为什么要用Numpy

  Numpy提供了一个非常易用的API,将数据传给底层语言编写的外部类库,再由外部类库将计算结果按照Numpy数组的方式返回,变得非常简单.Numpy本身不提供建模和科学函数,理解Numpy的数组以及基于数组的计算将帮助你更高效的使用基于数组的工具,比如Pandas.
在Numpy中:

  • ndarry,一种高效多维数组,提供了基于数组的便捷算术操作以及灵活的广播功能.
  • 对所有数据进行快速矩阵计算,而无须编写循环程序
  • 对硬盘中数组数据进行读写的工具,并对内存映射文件进行操作.
  • 线性代数,随机数生成以及傅里叶变换功能.
  • 用于连接NumPy到c,c++和FORTRAN语言类库的C语言API

怎么用Numpy

Numpy主要用于数据分析:

  • 在数据清理,清洗,构造子集,过滤,变换以及其他计算中进行快速的向量计算.
  • 常见的数组计算,比sort,unique以及set操作.
  • 高效的描述性统计和聚合/概述数据.
  • 数据排列和相关数据操作,例如对异构数据进行merge 和 join.
  • 使用数组表达式来表明条件逻辑,代替if-elif-else条件分支的循环.
  • 分组数据操作

Numpy的数据分析如此重要,其中一个原因就是它对处理大量数组的数据非常有效:

  • Numpy在内部将数据储存在连续的内存块上,这与其他的Python内建数据结构是不同的.Numpy的算法库是用C语言写的,所以在操作数据内存时,不需要任何类型的检查或者其他管理操作.Numpy数组使用的内存量也小于其他的Python内建序列.
  • Numpy可以针对全量数组进行复杂计算而不用写Python循环

Numpy ndarray:多维数组对象

  Numpy的核心特征之一就是多维数组对象----ndarray.ndarray是Python中一个快速,灵活的大型数据集容器.数组允许使用类似于标量的操作语法在整块数据上进行数学计算.

import numpy as np 
data = np.random.randn(2,3)
print(data)
#[[-1.48808504 -0.12575993 -2.61587575]
# [ 0.18325062  1.95968089 -0.68765384]]

  在python中,需要用Numpy的话,需要用标准导入式导入import numpy as np在Numpy这个包中包含了大量与python内建函数重命名的函数.
  一个ndarray是一个通用的多维同类数据容器,其内部的每一个元素都是相同类型的.每一个数组都有一个shape属性,用来描述ndarray的结构.每一个数组都有一个dtype属性,用来描述数组的数据类型.

data.shape
#(2,3)#(行,列)
data.dtype
#dtype('float64')

ndarray = Numpy数组 = 数组

如何生成一个ndarray

  在生成一个数组的方法中最简单的是array函数,array函数接收任意的序列型对象,生成一个新的包含传递数据的Numpy数组.

data1 = [6,7.5,8,0,1]
arr1 = np.array(data1)
#array([6.,7,5,8.,0,1.])

在列表中输入的有整型和浮点型,生成ndarray时整型升级成浮点型,

data2 = [[1,2,3,4],[5,6,7,8]]
arr2 = np.array(data2)
#array([[1,2,3,4],
 #           [5,6,7,8]])

  除了用np.array还有其他函数可以创建新数组.例如zeros可以一次性创造全0数组,ones可以一次性创造全1数组.empty则可以创建一个没有初始化数值的数组.想要创建高维数组,则需要为shape传递一个元组.

np.zeros(3)
#array([0.,0.,0.])
np.zeros((2,3))
#array([[0.,0.,0.],
#          [0.,0.,0.]]) 

arange是Python内建函数range的数字版,返回一个数组

np.arange(3)
#array([0,1,2])

Numpy数据类型

  数据类型,即dytpe,是一个特殊的对象,是ndarray的元数据,即:表示数据的数据.

arr1 = np.array([1,2,3],dtype = np.float64)
arr2 = np.array([1,2,3],dtype = np.int32)

  在Numpy中的数据类型与python中相同,比如int,float,str,'bool',在数据分析中只需要记住这几类就行,但是在需要内存或硬盘是做更深入的存取操作时,尤其是大数据集时,才需要记住数据类型.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355

推荐阅读更多精彩内容