import numpy as np
#
a=np.array([[1,3,2],[4,5,6]])
print(a)
a=np.arange(1,13).reshape((3,4))#生成一个3行4列的矩阵。值是1~13范围内的随机数字
#
b=a.reshape(2,-1)#明确指定矩阵为2行,-1表示一个占位符(在这里指定是3,一般情况下它一直都会是-1)
print(b)
print(a[1,1])#打印的是5 第2行,第2列的数字。默认从0开始计数
a[1,1]=55
print(a)
b=np.zeros((3,3))#创建一个3x3的矩阵,默认值全都为0
c=np.ones((3,3))#创建一个3x3的矩阵,默认值全都为1
d=np.full((3,3),5)#创建一个3x3的矩阵,默认值全都为5
print(d)
e=np.eye(3)#创建一个单位矩阵
print(e)
f=np.random.random((3,4))#创建随机矩阵 3x4
print(f)
#索引操作(和一般的列表操作类似,负数表示相反方向)
g=np.array([[1,2,3,4],[3,4,5,6],[6,7,8,9]])
h=g[1:,1:4]#从第2行,第1列开始,取值print(h.dtype) #打印矩阵中数值的类型
k=np.array([1.5,2.6,3.3])
l=np.array(k,dtype=np.int64)#会将矩阵中所有的数都转化成整数
print(g[1,3])#返回6(行与列都是从0开始计算的)
print(g[2,:])#返回第二行所有的值。
print(g[:,3])#返回第三列所有的值
print(g[0:2,1:3])#返回一个矩形区域的值。其中0:2是指获取第0行和第1行的数据。1:3是指获取第1列和第2列的数据
#numpy中的常用运算
ary1=np.array([[5,6],[7,8]])
ary2=np.array([[8,1],[3,2]])
print(ary1+ary2)#两个矩阵做加法运算(np.add(ary1,ary2))
print(ary1-ary2)#两个矩阵做减法运算,相当于np.subtract(ary1,ary2)
print(ary1/ary2)#两个矩阵做除法运算,相当于np.divide(ary1,ary2)
print(ary1*ary2)#将两个矩阵,相同位置上的数做乘法运算。相当于np.multiply(ary1,ary2)
#两个矩阵相乘 当前者的列数等于后者的行数,才能进行矩阵的乘法运算
print(ary1.dot(ary2))#相当于np.dot(ary1,ary2)
print(np.sum(ary1))#对ary中的数进行求和操作。结果是26
print(np.sum(ary1,axis=0))#得到一个一维矩阵,将矩阵中的每一列进行求和操作
print(np.sum(ary1,axis=1))#对矩阵中的每一行进行求和操作
np.mean(ary1)#求得矩阵中,所有数的和的平均值
np.mean(ary1,axis=0)#求得矩阵中,每一列数的和的平均值
np.mean(ary1,axis=1)#求得矩阵中,每一行数的和的平均值
print(np.random.uniform(0,1))#产生一个随机数(0和1之间)
print(np.average(ary1))#获取矩阵的平均数
print(np.median(ary1))#获取矩阵的中位数
np.cumsum(ary1)#返回一个列表,该列表内的元素的数量和矩阵的数量相同。列表的第2位数是矩阵的前2个数相加得来的。第3位数是矩阵前3个数相加得来的,第4位数是矩阵前4位……
np.diff(ary1)#返回一个矩阵,该矩阵第1位元素是ary1矩阵中,第2位和第1位元素的差。矩阵的第2位元素是ary1矩阵中,第3位元素和第2位元素的差。矩阵的第3位元素是矩阵ary1……
np.sort(ary1)#返回一个矩阵,将矩阵ary1进行逐行的排序
np.clip(ary1,3,6)#返回一个矩阵。将ary1矩阵中所有小于3的数,全都变成3,大于6的数,全都变成6
np.tile(ary1,(2,3))#将ary1这个矩阵,在行上重复2次,在列上重复3次
ary1.argsort()#将矩阵中的数进行 行(hang)排序
ary1.argsort(axis=0)#将矩阵中的数进行 列排序
np.argmin(ary1)#返回矩阵中最小值的索引
np.argmax(ary1)#返回矩阵中最大值的索引
ary1.T#矩阵的转置操作 等同于np.transpose(ary1)
ary3=np.array([1,3,2])
#将ary1的每一行和ary3进行相加
ary1+np.tile(ary3,(4,1))#在行上操作4次,在列上操作1次
a=np.array([1,1,1])
b=np.array([2,2,2])
#c=np.vstack((a,b)) #合并序列 vertical(上下合并)
#c=np.hstack((a,b))#左右合并
a=np.array([1,1,1])[:,np.newaxis]#在列上面增加一个维度,这样就可以使用concatenate来合并序列了
b=np.array([2,2,2])[:,np.newaxis]#如果np.newaxis放在了逗号的前面,则表示在列上面增加一个维度。(显然这里不需要,因为有3列了)
c=np.concatenate((a,b),axis=1)
c=np.concatenate((a,b,b,a),axis=0)#横向合并 #将矩阵分割成数组
np.split(array1,3,axis=0)#横向分割
np.hsplit(array1,3)
np.vsplit(array1,3)#纵向分割
d=a
d=a.copy()
print(c)

print

numpy小记的更多相关文章

  1. 临时处理小记:把Numpy的narray二进制文件转换成json文件

    临时处理一个Numpy的二进制文件,分析知道里面是dict类型,简单小记一下,如果Numpy和Python基础不熟悉可以看我之前写的文章 In [1]: %%time import numpy as ...

  2. numpy教程:排序、搜索和计数

    http://blog.csdn.net/pipisorry/article/details/51822775 numpy排序.搜索和计数函数和方法.(重新整合过的) ],, , ], [, , ]] ...

  3. [原]Paste.deploy 与 WSGI, keystone 小记

    Paste.deploy 与 WSGI, keystone 小记 名词解释: Paste.deploy 是一个WSGI工具包,用于更方便的管理WSGI应用, 可以通过配置文件,将WSGI应用加载起来. ...

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

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

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

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

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

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

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

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

  8. 深入理解numpy

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

  9. Python Numpy,Pandas基础笔记

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

随机推荐

  1. es分数_score衰减函数

    1.按日期衰变 GET news/doc/_search { "query" : { "function_score": { "query" ...

  2. javascript--获取一个页面各个标签的数量

    获取一个页面各个标签的数量 document.getElementsByTagName('*')--获取所有的标签. var obj = document.getElementsByTagName(' ...

  3. nginx反向代理实现后端web的读写分离

    1.环境 角色 ip 主机名 负载均衡节点 10.0.0.11 nginx-lb01 可读写web01节点 10.0.0.12 nginx-web01 只读web02节点 10.0.0.13 ngin ...

  4. 第十篇.6、python并发编程之IO模型

    一 IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步.异步.阻塞.非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非 ...

  5. 韦东山嵌入式Linux学习笔记02--如何给开发板烧录程序

    购买韦东山嵌入式开发板jz2440 v3会标配两根usb线和一根网线,OpenJtag需要单独购买, 我暂时还没买到该工具. 下面介绍usb烧录以及通过网线烧录程序. 1.usb烧录程序: 借助DNW ...

  6. 模拟赛小结:The 2019 China Collegiate Programming Contest Harbin Site

    比赛链接:传送门 上半场5题,下半场疯狂挂机,然后又是差一题金,万年银首也太难受了. (每次银首都会想起前队友的灵魂拷问:你们队练习的时候进金区的次数多不多啊?) Problem J. Justify ...

  7. [易学易懂系列|rustlang语言|零基础|快速入门|(19)|多线程]

    [易学易懂系列|rustlang语言|零基础|快速入门|(19)|多线程] 实用知识 多线程 我们今天来讲讲Rust中的多线程. 我直接来看看代码: use std::thread; use std: ...

  8. 使用cordova调用相机在相机中添加蒙版

    变态的需求,要在cordova调起得相机上加入一拍照的轮廓,在cordova的插件中拿不到拍照的方法,起初选用UIImagePickerController的cameraOverlayView属行,结 ...

  9. antd design vue 设置 v-decorator 的初始值

    v-decorator="['openType', { initialValue:'1' }]" 效果:

  10. 在JavaScript中,++在前和++在后有什么区别

    一.++可以与输出语句写在一起,++写在变量前和写在变量后不是一个意思++ i 和 i ++ 区别在于运算顺序和结合方向. 在JavaScript中有两种自加运算,其运算符均为 ++,功能为将运算符自 ...