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 条评论
登录 后参与评论

相关文章

来自专栏Java编程技术

UML建模图实战笔记(全)

UML:Unified Modeling Language(统一建模语言),使用UML进行建模的作用有哪些那:

1113
来自专栏人人都是极客

GPU内存分级

在NVIDIA的GPU中,内存(GPU的内存)被分为了全局内存(Global memory)、本地内存(Local memory)、共享内存(Shared me...

3984
来自专栏java一日一条

Java多线程并发锁和原子操作,你真的了解吗?

对于Java多线程,接触最多的莫过于使用synchronized,这个简单易懂,但是这synchronized并非性能最优的。今天我就简单介绍一...

893
来自专栏Spark学习技巧

Rowkey(行键)设计

HBase 中的行按行键按顺序排序。这种设计优化了扫描(scan),允许您将相关的行或彼此靠近的行一起读取。但是,设计不佳的行键是 hotspotting 的常...

1282
来自专栏直播音视频学习专栏

ffmpeg结构梳理总结

导语:初学ffmpeg的人往往觉得ffmpeg纷繁复杂,不知道从何处下手,感觉理不清头绪。这篇文章就是尽量帮助大家理清ffmpeg的逻辑结构和学习路线。

40614
来自专栏Crossin的编程教室

测试你的红包代码

上周我们探讨了如何实现一个简单的微信红包算法。还没有看过,或者还未亲手在代码里尝试过的朋友,可移步: 用 Python 实现一个简单的微信红包算法 如果你已经实...

2817
来自专栏Python中文社区

一个Pythoner的自我修养系列(一)

一个Pythoner的自我修养系列是Python中文社区网友的投稿文章,欢迎大家踊跃投稿,文章主要内容为您在工作中、学习中碰到的Python难题、心得...

1989
来自专栏韩伟的专栏

如何理解模块、组件和对象

模块、组件和对象这三个名词,是软件开发中非常常见的说法。在很多软件平台、库、框架中,都使用这三个名词作为描述其复杂结构的单元结构。模块、组件、对象三者虽然有相似...

2374
来自专栏FreeBuf

Frida在爆破Windows程序中的应用

谈到爆破,相信大部分网络安全从业者都并不陌生,爆破爆破,就是暴力破解嘛。通过枚举尝试尽可能多的可能解,再进行验证判断是否正确。在进行web的爆破时,我们通常会使...

1132
来自专栏黑泽君的专栏

day38_Spring学习笔记_06_CRM_02

注意:当前员工的职务所属的部门,此部门下的所有职务。代码表示:post.department.postSet editStaff.jsp

812

扫码关注云+社区