Numpy使用1

Numpy介绍

NumPy is the fundamental package for scientific computing with Python. It contains among other things:

  • a powerful N-dimensional array object
  • sophisticated (broadcasting) functions
  • tools for integrating C/C++ and Fortran code
  • useful linear algebra, Fourier transform, and random number capabilities

Numpy常常用在python科学计算中,最主要的能力就是提供了N-dimensional array(N维数组)的能力,可能有的人说python中不是有list嘛,list就可以当做数组用啊,说的没错,简单的数据的确是可以的,我问几个问题,如果你觉得list之类的都可以搞定,那么咱们就可以宣告numpy的死亡了

  1. 如何存储RGB图像
  2. 如何存储结构化的数据
  3. 如何高效存储和索引多维数组
  4. 如何高效的进行数据的切片和组装

很明显,这些list都是做不到的,如果你有类似的这类需求的话,那么numpy应该不会让你失望。

官方网址:HERE

Numpy的安装

我的机器是ubuntu14.04(64 位),建议使用pip安装,pip是个python的包管理器,通过它可以很方便的进行安装、卸载、升级

sudo apt-get install python-pip      # install pip
sudo pip install numpy               # install numpy

如果是windows的话,同样可以先安装pip,再使用pip安装numpy,不过过程稍微麻烦点,请大家自行百度

Getting Started

安装好以后,我们来测试下,并写段小代码体验下numpy的强大功能

import numpy as np

如果你import没有出错的化,就表示你已经成功安装好了 下面我们在ipython的交互式环境下写点代码,体验下numpy的功能

(1)创建3*3的全0矩阵

In [1]: import numpy as np

In [2]: all_zero =np.zeros((3,3))

In [3]: all_zero
Out[3]: 
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])

In [4]: 

(2)从python的list种初始化numpy矩阵

In [8]: test_list = [1,3,5,6,7]

In [9]: array_numpy = np.arra
np.array         np.array_equal   np.array_repr    np.array_str
np.array2string  np.array_equiv   np.array_split   

In [9]: array_numpy = np.array(test_list)

In [10]: array_numpy
Out[10]: array([1, 3, 5, 6, 7])

In [11]: 

(3)创建多维数组(3*4*4)

In [11]: array_n_dim = np.ones((3,4,4),dtype='int8')

In [12]: array_n_dim
Out[12]: 
array([[[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],
        [1, 1, 1, 1],
        [1, 1, 1, 1],
        [1, 1, 1, 1]]], dtype=int8)

In [13]: 

(4)从文本load结构化数据 假设当前目录下有个文本文件numpy_test.txt,内容是

In [14]: test_numpy = np.loadtxt('numpy_test.txt', str, delimiter=':')

In [15]: test_numpy
Out[15]: 
array([['1', '2'],
       ['3', '4'],
       ['5', '6'],
       ['7', '7'],
       ['8', '1']], 
      dtype='|S1')

In [16]: 

相信到这已经可以说明numpy的强大之处,其实还有很多的优秀特性还没介绍,下个文章继续

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

人工智能为什么能做的事情这么多?密码猜测在它面前也能行得通

密码猜测之所以有效是因为… 人类是可预测的 ? 如果你要求小明设置一个密码。他可能只是简单地把密码设置为“xiaoming”。现在,系统告诉他密码必须包含数字...

3296
来自专栏杨建荣的学习笔记

通过shell脚本来得到不稳定的执行计划(r4笔记第40天)

生产系统中总是可能碰到各种各样的sql问题,其中大部分问题都和执行计划有关,执行计划出现问题有很多原因导致,比如统计信息过旧,比如数据的分布极不均匀等等都会导致...

2645

Ray:AI的分布式系统

随着机器学习的算法和技术的进步,越来越多的机器学习应用程序需要多台机器,并且必须利用并行性。但是,在集群上进行机器学习的基础设施仍然是特设的。尽管针对特定用例(...

2646
来自专栏Java架构师学习

京东架构师的showtime京东个性化推荐系统实战

推荐系统核心任务是排序,从线上服务角度看,就是将数据从给定集合中数据选择出来,选出后根据一定规则策略方法进行排序。 线上服务要根据一定规则进行架构设计,架...

3916
来自专栏运维一切

ceph容量使用率的优化 原

###背景 随着ceph集群不断的变大和复杂,可能会遇到,整个容量很大,但是真正的数据使用率很低的情况。比如明明有100多TB的空间,但是数据才存了20TB,就...

682
来自专栏企鹅号快讯

像Apache Storm一样简单的分布式图计算

作者:Kobi Hikri 翻译:无阻我飞扬 摘要:本文从计算机领域的“祖师爷”艾伦·图灵提出的图灵机概念开始,介绍了图形计算的概念,并以示例介绍了apache...

17110
来自专栏CSDN技术头条

机器学习算法线上部署方法

我们经常会碰到一个问题:用了复杂的GBDT或者xgboost大大提升了模型效果,可是在上线的时候又犯难了,工程师说这个模型太复杂了,我没法上线,满足不了工程的要...

43310
来自专栏UML

用例图教程(示例指南)

用例是系统分析中用于识别,澄清和组织系统需求的方法。用例由特定环境中系统和用户之间的一组可能的交互序列组成,并且与特定目标相关。它由一组元素(例如,类和接口)组...

1173
来自专栏携程技术中心

干货 | 机器学习算法线上部署方法

作者简介 潘鹏举,携程酒店研发 BI 经理,负责酒店服务相关的业务建模工作,主要研究方向是用机器学习实现业务流程自动化、系统智能化、效率最优化,专注于算法实践和...

6126
来自专栏黑白安全

如何攻破加密算法

当应用加密算法时,有许多地方可能会出错。难点在于识别和分析程序员用来加密的方法,然后寻找其中的漏洞。漏洞的种类也很多,比如弱加密算法、弱密钥生成器、服务端漏洞和...

782

扫码关注云+社区