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. spring boot打包后windows启动乱码

    事情的起因什么的就不多表了,直接进入主题... 项目都要上线了,结果发现使用 idea mvn install之后的 jar在windows下启动乱码,而使用idea启动却没有问题!!! 这是神马情况 ...

  2. (二进制 异或)Team Formation --ZOJ --3870

    链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3870 http://acm.hust.edu.cn/vjudge/ ...

  3. CreateDialog()与CreateDialogIndrect()

    CreateDialog() 概述 函数功能:CreateDialog宏从一个对话框模板资源创建一个无模式的对话框,CreateDiaog宏使用CreateDialogParam函数. 函数原型:HW ...

  4. HDU1181 变形课(DFS) 2016-07-24 13:31 73人阅读 评论(0) 收藏

    变形课 Problem Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒 ...

  5. OKHttp概览

    1,整体思路 从使用方法出发,首先是怎么使用,其次是我们使用的功能在内部是如何实现的,实现方案上有什么技巧,有什么范式.全文基本上是对 OkHttp 源码的一个分析与导读,非常建议大家下载 OkHtt ...

  6. 好久不发帖,转一下公司技术美术独立完成的U3D模拟暗黑泰瑞尔翅膀物理运动效果

    想入公司倍培养成为优秀的技术型美术,欢迎call我! Max制作翅膀模型部分 新建一个片面,模型给一些段数,赋予一张左右二方连续贴图. 加个FFD 4*4*4,并稍微拉出一点弧度. 将头尾的Alpha ...

  7. Difference between the Bill of distribution and sourcing rule.

        https://forums.oracle.com/thread/936768 This is from a users guide  Oracle Supply Chain Planning ...

  8. 微软儿童编程技术,kodu(酷豆)为儿童创造一个游戏世界

    受微软青年星火项目组的邀请,我和微软项目组的朋友参加了一场针对儿童编程的技术指导. 儿童和编程,本来是两个完全不靠边的词.在大家的常规思维中,编程一直是软件开发人员的事情,是高科技类型的工作,高不可攀 ...

  9. AspNetCore Mvc 自定义中间件认证

    AspNetCore Mvc 自定义中间件认证 实现控制器访问验证和拦截. 1.注册政策. 例如: services.AddAuthorization(options => { options. ...

  10. C#DataGridView的简单使用

    首先创建一个DataGridView控件,然后创建列(包括列名的定义), 由于我不是和数据库进行连接,只是为了输出好看一点. 删除所有数据: while (this.dataGridView1.Row ...