Numpy是一个非常强大的库,具有大量线性代数以及大规模科学计算的方法。

#-*- coding:utf-8 -*-
import numpy as np #Numpy生成一维数组
a=np.array([1,2,3])
print type(a)
print a.shape
print a[0],a[1],a[2]
a[0]=5
print a
print '-'*100
# 输出
# <type 'numpy.ndarray'>
# (3L,)
# 1 2 3
# [5 2 3] #Numpy生成二维数组
b=np.array([[1,2,3],[4,5,6]])
print b
print b.shape
print b[0,0],b[0,1],b[1,0]
print '-'*100
# 输出
# [[1 2 3]
# [4 5 6]]
# (2L, 3L)
# 1 2 4 #numpy创建数组
a=np.zeros((2,2))#创建2x2的全0数组
print a
b=np.ones((1,2))#创建1x2的全1数组
print b
c=np.full((2,2),7)#创建2x2的全为7的数组
print c
d=np.eye(2)#创建单位数组
print d
e=np.random.random((2,2))#创建2x2的随机数组
print e
print '-'*100
# 输出
# [[ 0. 0.]
# [ 0. 0.]]
# [[ 1. 1.]]
# [[7 7]
# [7 7]]
# [[ 1. 0.]
# [ 0. 1.]]
# [[ 0.22054647 0.57186555]
# [ 0.79464255 0.90896572]] #numpy的多种访问数组的方法
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
b = a[:2, 1:3]#0,1行 1,2列
print b
print a[0, 1]#第0行 第1列
b[0, 0] = 77
print a[0, 1]
print '-'*100
# 输出
# [[2 3]
# [6 7]]
#
# a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
row_r1 = a[1, :]#取第二行,4列
row_r2 = a[1:2, :]#取第二行,1行X4列
print row_r1, row_r1.shape
print row_r2, row_r2.shape
print '-'*100
# 输出
# [5 6 7 8] (4L,)
# [[5 6 7 8]] (1L, 4L) col_r1 = a[:, 1] #取第二列,3列
col_r2 = a[:, 1:2]#取第二列,3行X1列
print col_r1, col_r1.shape
print col_r2, col_r2.shape
print '-'*100
# 输出
# [ 2 6 10] (3L,)
# [[ 2]
# [ 6]
# [10]] (3L, 1L) a = np.array([[1,2], [3, 4], [5, 6]])
print a[[0, 1, 2], [0, 1, 0]] #输出a[0,0] a[1,1] a[2,0]
print np.array([a[0, 0], a[1, 1], a[2, 0]])
print '-'*100
# 输出
# [1 4 5]
# [1 4 5] a = np.array([[1,2,3], [4,5,6], [7,8,9], [10, 11, 12]])
print a
b = np.array([0, 2, 0, 1])
print a[np.arange(4), b]#输出a[0,0] a[1,2] a[2,0] a[3,1]
a[np.arange(4), b] += 10
print a
print '-'*100
# 输出
# [[ 1 2 3]
# [ 4 5 6]
# [ 7 8 9]
# [10 11 12]]
# [ 1 6 7 11]
# [[11 2 3]
# [ 4 5 16]
# [17 8 9]
# [10 21 12]] a = np.array([[1,2], [3, 4], [5, 6]])
bool_idx = (a > 2) #当a大于2时为True,否则为False
print bool_idx
print a[bool_idx] #true输出,false不输出
print a[a > 2] #符合a>2时输出
print '-'*100
# 输出
# [[False False]
# [ True True]
# [ True True]]
# [3 4 5 6]
# [3 4 5 6] x = np.array([1, 2])
print x.dtype
x = np.array([1.0, 2.0])
print x.dtype
x = np.array([1, 2], dtype=np.int64)
print x.dtype
print '-'*100
# 输出
# int32
# float64
# int64 x = np.array([[1,2],[3,4]], dtype=np.float64)
y = np.array([[5,6],[7,8]], dtype=np.float64)
print x + y
print np.add(x, y)
print x - y
print np.subtract(x, y)
print x * y
print np.multiply(x, y)
print x / y
print np.divide(x, y)
print np.sqrt(x)
print '-'*100
# 输出
# [[ 6. 8.]
# [ 10. 12.]]
# [[ 6. 8.]
# [ 10. 12.]]
# [[-4. -4.]
# [-4. -4.]]
# [[-4. -4.]
# [-4. -4.]]
# [[ 5. 12.]
# [ 21. 32.]]
# [[ 5. 12.]
# [ 21. 32.]]
# [[ 0.2 0.33333333]
# [ 0.42857143 0.5 ]]
# [[ 0.2 0.33333333]
# [ 0.42857143 0.5 ]]
# [[ 1. 1.41421356]
# [ 1.73205081 2. ]] x = np.array([[1,2],[3,4]])
y = np.array([[5,6],[7,8]])
v = np.array([9,10])
w = np.array([11, 12])
print v.dot(w)
print np.dot(v, w)#9x11+10x12
print x.dot(v)
print np.dot(x, v)
print x.dot(y)#矩阵X x 矩阵Y
print np.dot(x, y)
print '-'*100
# 输出
#
#
# [29 67]
# [29 67]
# [[19 22]
# [43 50]]
# [[19 22]
# [43 50]] x = np.array([[1,2],[3,4]])
print np.sum(x)
print np.sum(x, axis=0)#行相加
print np.sum(x, axis=1)#列相加
print '-'*100
# 输出
#
# [4 6]
# [3 7] #矩阵的逆
x = np.array([[1,2], [3,4]])
print x
print x.T
v = np.array([1,2,3])
print v
print v.T
print '-'*100
# 输出
# [[1 2]
# [3 4]]
# [[1 3]
# [2 4]]
# [1 2 3]
# [1 2 3] #广播Broadcasting
x = np.array([[1,2,3], [4,5,6], [7,8,9], [10, 11, 12]])
v = np.array([1, 0, 1])
y = np.empty_like(x)
for i in range(4):
y[i, :] = x[i, :] + v#每行与v相加
print y y = x + v
print y vv = np.tile(v, (4, 1))
print vv
y = x + vv
print y
print '-'*100
# 输出
# [[ 2 2 4]
# [ 5 5 7]
# [ 8 8 10]
# [11 11 13]]
# [[ 2 2 4]
# [ 5 5 7]
# [ 8 8 10]
# [11 11 13]]
# [[1 0 1]
# [1 0 1]
# [1 0 1]
# [1 0 1]]
# [[ 2 2 4]
# [ 5 5 7]
# [ 8 8 10]
# [11 11 13]] v = np.array([1,2,3])
w = np.array([4,5])
print np.reshape(v, (3, 1))#将1行x3列的v转换成3行x1列矩阵
print np.reshape(v, (3, 1)) * w
x = np.array([[1,2,3], [4,5,6]])
print x + v
print (x.T + w).T
print x + np.reshape(w, (2, 1))
print x * 2
# 输出
# [[1]
# [2]
# [3]]
# [[ 4 5]
# [ 8 10]
# [12 15]]
# [[2 4 6]
# [5 7 9]]
# [[ 5 6 7]
# [ 9 10 11]]
# [[ 5 6 7]
# [ 9 10 11]]
# [[ 2 4 6]
# [ 8 10 12]]

numpy 基本使用1的更多相关文章

  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. org.hibernate.HibernateException: /hibernate.cfg.xml not found等三个问题

    初次配置hibernate在myeclipse上: 出现三个问题,怎么都不好使,比对代码,没有问题,查看路径还是没有问题: 1.org.hibernate.HibernateException: /h ...

  2. 记一次web服务模块开发过程

    一.前言 之前在分析WCS系统的过程中,也赶上要开发其中的一个模块,用于和AGV系统对接完成一些取货.配盘等任务:在这里将这次模块开发的全过程记录一下,以便自己以后开发时能够更加快速的明白流程. 二. ...

  3. 6.<1>四则运算的研究[栈]

    计算1+2*3=,这个程序还是比较绕的,先将程序简化,只做+-*/和=五个运算符的关系.首先,假定这五个运算符中,=号的优先级最低,其次是+-,最高为*/.接着约定,"1+2*3=" ...

  4. Ubuntu 14.04 LTC 有线网络--网线不识别,灯不亮问题

    sudo ethtool -s eth0 autoneg off speed 100 duplex full

  5. EntityFramework 基本模式和Code-First的简单使用

    1.Database-First  Database First就是首先建立好数据库,或者存在现成的数据库也可以.然后在vs中添加ADO.Net实体数据模型,找到需要的数据库和表.它是以数据库设计为基 ...

  6. java Map集合学习

    学习语法还是从例子着手: FileDao fileDao=new FileBeanDaoImpl(); FileBean fileBean=new FileBean(); listBean=fileD ...

  7. 主程序与DLL之间的全局变量问题

    http://www.cnblogs.com/railgunman/archive/2010/11/29/1891200.html 主程序与DLL之间的全局变量问题   有几个朋友经常向我问题在DLL ...

  8. Delphi 动态与静态调用DLL(最好的资料)

    摘要:本文阐述了 Windows 环境下动态链接库的概念和特点,对静态调用和动态调用两种调用方式作出了比较,并给出了 Delphi 中应用动态链接库的实例. 一.动态链接库的概念    动态链接库(  ...

  9. Redis Sentinel基本介绍(翻译以及总结)

    目录 Redis Sentinel介绍 分布式的Redis Sentinel 快速开始 获取Sentinel 启动Sentinel 部署Sentinel的基本要求 配置Sentinel 其他的Sent ...

  10. bootstrap实现左侧图片右侧文字布局

    效果图 代码 通过class="media-left"来控制相对位置 <!DOCTYPE html> <html> <head lang=" ...