Numpy的主要功能:

  

  可以观察以上的规律,会发现,代码类型的简写,计量都是以8作为起始1的。

  

# -*- coding: utf-8 -*-
#向量相加-Python
def pythonsum(n):
a = range(n)
b = range(n)
c = []
for i in range(len(a)):
a[i] = i ** 2
b[i] = i ** 3
c.append(a[i] + b[i])
return c #向量相加-NumPy
import numpy as np def numpysum(n):
a = numpy.arange(n) ** 2
b = numpy.arange(n) ** 3
c = a + b
return c #效率比较
import sys
from datetime import datetime
import numpy as np size = 1000 start = datetime.now()
c = pythonsum(size)
delta = datetime.now() - start
print "The last 2 elements of the sum", c[-2:]
print "PythonSum elapsed time in microseconds", delta.microseconds start = datetime.now()
c = numpysum(size)
delta = datetime.now() - start
print "The last 2 elements of the sum", c[-2:]
print "NumPySum elapsed time in microseconds", delta.microseconds #numpy数组
a = arange(5)
a.dtype a
a.shape #创建多维数组
m = np.array([np.arange(2), np.arange(2)]) print m print m.shape print m.dtype np.zeros(10)
np.zeros((3, 6))
np.empty((2, 3, 2))
np.arange(15) #选取数组元素
a = np.array([[1,2],[3,4]]) print "In: a"
print a print "In: a[0,0]"
print a[0,0] print "In: a[0,1]"
print a[0,1] print "In: a[1,0]"
print a[1,0] print "In: a[1,1]"
print a[1,1] #numpy数据类型
print "In: float64(42)"
print np.float64(42) print "In: int8(42.0)"
print np.int8(42.0) print "In: bool(42)"
print np.bool(42) print np.bool(0) print "In: bool(42.0)"
print np.bool(42.0) print "In: float(True)"
print np.float(True)
print np.float(False) print "In: arange(7, dtype=uint16)"
print np.arange(7, dtype=np.uint16) print "In: int(42.0 + 1.j)"
try:
print np.int(42.0 + 1.j)
except TypeError:
print "TypeError"
#Type error print "In: float(42.0 + 1.j)"
print float(42.0 + 1.j)
#Type error # 数据类型转换
arr = np.array([1, 2, 3, 4, 5])
arr.dtype
float_arr = arr.astype(np.float64)
float_arr.dtype arr = np.array([3.7, -1.2, -2.6, 0.5, 12.9, 10.1])
arr
arr.astype(np.int32) numeric_strings = np.array(['1.25', '-9.6', ''], dtype=np.string_)
numeric_strings.astype(float) #数据类型对象
a = np.array([[1,2],[3,4]]) print a.dtype.byteorder print a.dtype.itemsize #字符编码
print np.arange(7, dtype='f')
print np.arange(7, dtype='D') print np.dtype(float) print np.dtype('f') print np.dtype('d') print np.dtype('f8') print np.dtype('Float64') #dtype类的属性
t = np.dtype('Float64') print t.char print t.type print t.str #创建自定义数据类型
t = np.dtype([('name', np.str_, 40), ('numitems', np.int32), ('price', np.float32)])
print t print t['name'] itemz = np.array([('Meaning of life DVD', 42, 3.14), ('Butter', 13, 2.72)], dtype=t) print itemz[1] #数组与标量的运算
arr = np.array([[1., 2., 3.], [4., 5., 6.]])
arr
arr * arr
arr - arr 1 / arr
arr ** 0.5 #一维数组的索引与切片
a = np.arange(9) print a[3:7] print a[:7:2] print a[::-1] s = slice(3,7,2)
print a[s] s = slice(None, None, -1) print a[s] #多维数组的切片与索引
b = np.arange(24).reshape(2,3,4) print b.shape print b print b[0,0,0] print b[:,0,0] print b[0] print b[0, :, :] print b[0, ...] print b[0,1] print b[0,1,::2] print b[...,1] print b[:,1] print b[0,:,1] print b[0,:,-1] print b[0,::-1, -1] print b[0,::2,-1] print b[::-1] s = slice(None, None, -1)
print b[(s, s, s)] #布尔型索引
names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
data = randn(7, 4)
names
data names == 'Bob'
data[names == 'Bob'] data[names == 'Bob', 2:]
data[names == 'Bob', 3] names != 'Bob'
data[-(names == 'Bob')] mask = (names == 'Bob') | (names == 'Will')
mask
data[mask] data[data < 0] = 0
data data[names != 'Joe'] = 7
data #花式索引
arr = np.empty((8, 4))
for i in range(8):
arr[i] = i
arr arr[[4, 3, 0, 6]] arr[[-3, -5, -7]] arr = np.arange(32).reshape((8, 4))
arr
arr[[1, 5, 7, 2], [0, 3, 1, 2]] arr[[1, 5, 7, 2]][:, [0, 3, 1, 2]] arr[np.ix_([1, 5, 7, 2], [0, 3, 1, 2])] #数组转置
arr = np.arange(15).reshape((3, 5))
arr
arr.T #改变数组的维度
b = np.arange(24).reshape(2,3,4) print b print b.ravel() print b.flatten() b.shape = (6,4) print b print b.transpose() b.resize((2,12)) print b #组合数组
a = np.arange(9).reshape(3,3) print a b = 2 * a print b print np.hstack((a, b)) print np.concatenate((a, b), axis=1) print np.vstack((a, b)) print np.concatenate((a, b), axis=0) print np.dstack((a, b)) oned = np.arange(2) print oned twice_oned = 2 * oned print twice_oned print np.column_stack((oned, twice_oned)) print np.column_stack((a, b)) print np.column_stack((a, b)) == np.hstack((a, b)) print np.row_stack((oned, twice_oned)) print np.row_stack((a, b)) print np.row_stack((a,b)) == np.vstack((a, b)) #数组的分割
a = np.arange(9).reshape(3, 3) print a print np.hsplit(a, 3) print np.split(a, 3, axis=1) print np.vsplit(a, 3) print np.split(a, 3, axis=0) c = np.arange(27).reshape(3, 3, 3) print c print np.dsplit(c, 3) #数组的属性
b=np.arange(24).reshape(2,12)
b.ndim
b.size
b.itemsize
b.nbytes b = np.array([ 1.+1.j, 3.+2.j])
b.real
b.imag b=np.arange(4).reshape(2,2)
b.flat
b.flat[2] #数组的转换
b = np.array([ 1.+1.j, 3.+2.j])
print b print b.tolist() print b.tostring() print np.fromstring('\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\x08@\x00\x00\x00\x00\x00\x00\x00@', dtype=complex) print np.fromstring('20:42:52',sep=':', dtype=int) print b print b.astype(int) print b.astype('complex')

Numpy的使用的更多相关文章

  1. 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片

    概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...

  2. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍

    一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...

  3. 利用Python进行数据分析(6) NumPy基础: 矢量计算

    矢量化指的是用数组表达式代替循环来操作数组里的每个元素. NumPy提供的通用函数(既ufunc函数)是一种对ndarray中的数据进行元素级别运算的函数. 例如,square函数计算各元素的平方,r ...

  4. python安装numpy、scipy和matplotlib等whl包的方法

    最近装了python和PyCharm开发环境,但是在安装numpy和matplotlib等包时出现了问题,现总结一下在windows平台下的安装方法. 由于现在找不到了工具包新版本的exe文件,所以采 ...

  5. 深入理解numpy

    一.为啥需要numpy python虽然说注重优雅简洁,但它终究是需要考虑效率的.别说运行速度不是瓶颈,在科学计算中运行速度就是瓶颈. python的列表,跟java一样,其实只是一维列表.一维列表相 ...

  6. Python Numpy,Pandas基础笔记

    Numpy Numpy是python的一个库.支持维度数组与矩阵计算并提供大量的数学函数库. arr = np.array([[1.2,1.3,1.4],[1.5,1.6,1.7]])#创建ndarr ...

  7. broadcasting Theano vs. Numpy

    broadcasting Theano vs. Numpy broadcast mechanism allows a scalar may be added to a matrix, a vector ...

  8. python之numpy

    一.矩阵的拼接合并 列拼接:np.column_stack() >>> import numpy as np >>> a = np.arange(9).reshap ...

  9. win7系统下python安装numpy,matplotlib,scipy和scikit-learn

    1.安装numpy,matplotlib,scipy和scikit-learn win7系统下直接采用pip或者下载源文件进行安装numpy,matplotlib,scipy时会遇到各种问题,这是因为 ...

  10. 给numpy矩阵添加一列

    问题的定义: 首先我们有一个数据是一个mn的numpy矩阵现在我们希望能够进行给他加上一列变成一个m(n+1)的矩阵 import numpy as np a = np.array([[1,2,3], ...

随机推荐

  1. Dreamweaver如何开启代码错误提示,报错代码。

    DW的代码错误即无效提示功能设置:在DW代码窗口左面有一列很小的功能按钮,在其中寻找"高亮显示无效代码",选中之后就可以看到无效的代码会被添加背景色,会让你容易辨识.改正后背景色会 ...

  2. pyqt样式表语法笔记(下)--原创

    pyqt样式表语法笔记(下) python 启动界面 QSS pyqt 一.启动界面的设置 简单点~说话的方式简单点用一张静态图片作为程序启动界面为例. 原来的语句     python    7行 ...

  3. Jmeter-测试计划元件

    打开Jmeter页面,默认显示测试计划和工作台: 1.测试计划: 用来描述一个性能测试,包含与本次性能测试所有相关的功能.也就说性能测试的所有内容是于基于一个计划的. 右键单击"测试计划&q ...

  4. 关于压缩jar包时提示*.*没有这个文件或目录的问题以及解决办法:

    关于压缩jar包时提示.没有这个文件或目录的问题以及解决办法: 问题描述: 我在打包jar时,CMD中进入到包的上一层目录. 在命令提示符中输入 提示如下: 从提示中可知没有找到我们想要打包的clas ...

  5. STM32位带操作总结---浅显易懂

    正在准备做毕业设计,配置LED_Config()的时候,又看到了位带操作的宏定义,我又嘀咕了,什么是位带操作,一年前在使用位带操作的时候,就查阅过好多资料,Core-M3也看过,但是对于博主这种“低能 ...

  6. 老李分享:qtp自动化测试框架赏析-关键字自动化测试框架

    老李分享:qtp自动化测试框架赏析-关键字自动化测试框架   QTP从2005年继winrunner,robot逐渐退出历史舞台之后,占领主流自动化测试工具市场已经10年之久.当初为了提高在自动化测试 ...

  7. 原生js实现tab切换

    //通过原生js实现table切换<html><head><meta http-equiv="Content-Type" content=" ...

  8. 现代3D图形编程学习-设置三角形颜色(译)

    本书系列 现代3D图形变成学习 http://www.cnblogs.com/grass-and-moon/category/920962.html 设置颜色 这一章会对上一章中绘制的三角形进行颜色的 ...

  9. java 基础知识七 装箱和拆箱

    java  基础知识七  装箱和拆箱 数据类型可分为两大种,基本数据类型(值类型)和类类型(引用数据类型) 装箱:把基本类型用他们相对应的引用类型包装起来,使他们可以具有对象的特质    基本数据类型 ...

  10. 前端代码组织优化--小demo(进阶你的思路)

    事出必有因 最近在看老项目的代码,一个富客户端的js代码,几千行的代码,全是function(){} var...的垂直布局,真的是要感动的哭了. 一开始都是这样,想实现什么功能,不管三七二十一,fu ...