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. Linux 系统运维常用命令

    1 文件管理2 软件管理3 系统管理4 服务管理5 网络管理6 磁盘管理7 用户管理8 脚本相关9 服务配置==================================------------ ...

  2. java.lang.ExceptionInInitializerError Caused by: org.hibernate.InvalidMappingException: Unable to read XML

    此错误是说无法读取你的xml文档,于是我们就该去更改xml文档,因为我是自动生成的,所以我找了一份之前手写的,发现是dtd错了,把之前的dtd拷贝过来之后程序就测试通过了

  3. hdu 5036 概率+bitset

    http://acm.hdu.edu.cn/showproblem.php?pid=5036 n个房间每个房间里面有一把或多把钥匙可以打开其他的门.如果手上没有钥匙可以选择等概率随机选择一个门炸开,求 ...

  4. Ansible组件之inventory主机清单

    静态inventory 所有的主机信息都存放在Ansible的inventory组件里面,默认Ansible的inventory是一个静态的ini格式的文件/etc/ansible/hosts,当然还 ...

  5. Python学习-4.Python的模块加载(二)

    1.部分函数加载 from SameFolder import printSameFolder printSameFolder() 该代码指从SameFolder.py中加载printSameFold ...

  6. monoDB环境搭建

    最近看到有部分人MongoDB安装之后总是启动不起来,在这里,写了一个简单的搭建教程 直接进入正题 1.mongoDB下载地址 https://www.mongodb.org/downloads#pr ...

  7. Regular进阶: 跨组件通信

    本文由作者郑海波授权网易云社区发布. 背景 在组件化不断深入的大环境下,无论使用哪种 MDV 框架都最终会遇到一个头疼的问题,就是「跨组件通信」. 下图是个简单的例子 这里包含「事件通信」和「数据通信 ...

  8. OpenStack 虚机网卡的创建过程

    原文链接:https://www.cnblogs.com/potato-chip/p/9127083.html OpenStack虚机网卡的创建过程 OpenStack最基本和常用的操作就是启动虚机. ...

  9. 二叉堆的实现(数组)——c++

    二叉堆的介绍 二叉堆是完全二元树或者是近似完全二元树,按照数据的排列方式可以分为两种:最大堆和最小堆.最大堆:父结点的键值总是大于或等于任何一个子节点的键值:最小堆:父结点的键值总是小于或等于任何一个 ...

  10. C++中vector的使用

    在c++中,vector是一个十分有用的容器. 作用:它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据. vector在C++标准模板库中 ...