这里介绍python的一个库,numpy库,这个库是机器学习,数据分析最经常用到的库之一,也是利用python做数据必须用到的一个库,入门机器学习学的第一个python库就是它了。

先对其导入到python中,相关代码如下:

import numpy

 1.首先利用这个库创建一个一维数组:

a=np.arange(10)
print(a)

  输出结果如下:

[0 1 2 3 4 5 6 7 8 9]

 2.创建一个布尔型的数组:

a=np.full((3,3),True,dtype=bool)
print(a)

  结果如下:

[[ True  True  True]
[ True True True]
[ True True True]]

 3.从一维数组从提取满足条件的元素,比方说提取出奇数的元素:

import numpy as np
a=np.arange(10)
print(a[a%2==1])

  结果如下:

[1 3 5 7 9]

 4.将数组中的所有奇数替换成-1而不影响原始的数组:

import numpy as np
a=np.arange(10)
print(a[a%2==1])
out=np.where(a%2==1,-1,a)
print(out)
print(a)

  结果如下:

[1 3 5 7 9]
[ 0 -1 2 -1 4 -1 6 -1 8 -1]
[0 1 2 3 4 5 6 7 8 9]

 5.将一行的数组转化为两行的数组:

import numpy as np
a=np.arange(10)
print(a)
b=a.reshape(2,-1)
print(b)

  结果如下:

[0 1 2 3 4 5 6 7 8 9]
[[0 1 2 3 4]
[5 6 7 8 9]]

 6.组合两个不同的数组,垂直堆叠数组:

import numpy as np
a=np.arange(10).reshape(2,-1)
print(a)
b=np.ones(10).reshape(2,-1)
print(b)
c=np.concatenate((a,b),axis=0)
print(c)

  结果如下:

[[0 1 2 3 4]
[5 6 7 8 9]]
[[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]]
[[0. 1. 2. 3. 4.]
[5. 6. 7. 8. 9.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]]

 7.采用另外的一种方法水平堆叠两个不同的数组:

import numpy as np
a=np.arange(10).reshape(2,-1)
print(a)
b=np.ones(10).reshape(2,-1)
print(b)
c=np.hstack((a,b))
print(c)
#垂直堆叠的话将hstack改为vstack

 结果如下:

[[0 1 2 3 4]
[5 6 7 8 9]]
[[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]]
[[0. 1. 2. 3. 4. 1. 1. 1. 1. 1.]
[5. 6. 7. 8. 9. 1. 1. 1. 1. 1.]]

 8.如何获得两个数组之间的共同元素:

import numpy as np
a=np.array([0,1,2,3,4,5,6,7,8,9]).reshape(2,-1)
b=np.array([7,2,3,8,6,5,4,0,8,8]).reshape(2,-1)
c=np.intersect1d(a,b)
print(c)

  结果:

[0 2 3 4 5 6 7 8]

 9.如何交换二维数组中的两个列,比方说第一和第二列:

import numpy as np
a=np.array([0,1,2,3,4,5,6,7,8]).reshape(-1,3)
print(a)
b=a[:,[1,0,2]]
print(b)

  结果:

[[0 1 2]
[3 4 5]
[6 7 8]]
[[1 0 2]
[4 3 5]
[7 6 8]]

 10.创建一个随机数组:

import numpy as np
a=np.random.random(9).reshape(3,3)
print(a)

  结果:

[[0.35743078 0.45562558 0.47565199]
[0.21876288 0.7162558 0.88601442]
[0.87192744 0.2853304 0.48398916]]

 11.打印数组并且保留3位小数:

import numpy as np
a=np.random.random(9).reshape(3,3)
print(a)
np.set_printoptions(precision=3)
print(a)

  结果:

[[0.61684015 0.01555676 0.59569796]
[0.74603776 0.04927135 0.98439895]
[0.38879249 0.71765352 0.24739962]]
[[0.617 0.016 0.596]
[0.746 0.049 0.984]
[0.389 0.718 0.247]]

 12.求数组的平均值,中位数和标准差:

import numpy as np
a=np.random.random(9).reshape(3,3)
print(a)
mean,mid,std=np.mean(a),np.median(a),np.std(a)
print(mean,mid,std)

  结果:

[[0.69353914 0.41381197 0.08503532]
[0.59348658 0.72611527 0.93285931]
[0.11307856 0.01634739 0.71822684]]
0.476944488122813 /t 0.593486582461256 0.3146044225752866

  这里顺便提一下其他的函数,比方绝对值函数abs,平方函数square,四舍五入函数rint,方差var,求和平均值就不说了。。

13.多维数组的切片:

import numpy as np
a=np.arange(24).reshape((2,3,4))
print(a)
print()
#选取一个维度的
b=a[:,1,-3]
print(b)
print()
c=a[:,1:3,:]
print(c)
print()
#利用步长跳跃切片
d=a[:,:,::2]
print(d)

  结果如下:

[[[ 0  1  2  3]
[ 4 5 6 7]
[ 8 9 10 11]] [[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]] [ 5 17] [[[ 4 5 6 7]
[ 8 9 10 11]] [[16 17 18 19]
[20 21 22 23]]] [[[ 0 2]
[ 4 6]
[ 8 10]] [[12 14]
[16 18]
[20 22]]]

  暂时第一篇博客就写到这,因为自己是菜鸡中的菜鸡,所以如果以上的代码或者结果有错误的话,也很正常,欢迎指正指导!

简单记录numpy库的某些基本功能的更多相关文章

  1. numpy 库简单使用

    numpy 库简单使用 一.numpy库简介 Python标准库中提供了一个array类型,用于保存数组类型的数据,然而这个类型不支持多维数据,不适合数值运算.作为Python的第三方库numpy便有 ...

  2. 数据分析之Numpy库入门

    1.列表与数组 在python的基础语言部分,我们并没有介绍数组类型,但是像C.Java等语言都是有数组类型的,那python中的列表和数组有何区别呢? 一维数据:都表示一组数据的有序结构 区别: 列 ...

  3. 01 numpy库(一)

    01-numpy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. NumPy 是一个运行 ...

  4. 商城06——solr索引库搭建&solr搜索功能实现&图片显示问题解决

    1.   课程计划 1.搜索工程的搭建 2.linux下solr服务的搭建 3.Solrj使用测试 4.把数据库中的数据导入索引库 5.搜索功能的实现 2.   搜索工程搭建 要实现搜索功能,需要搭建 ...

  5. JSP简单记录

    JSP,全称是Java Server Page,是运行在服务器端的页面,是建立在Servlet规范的动态网页技术,JSP文件在第一次请求时,会被编译成Servlet,所以JSP也可以看成是运行中的Se ...

  6. OpenCV安装配置的简单记录

    在ubuntu16.04下安装OpenCV 2.4.11的简单记录 1. 安装cmake,执行$apt-get install cmake即可,cmake -version验证 2. 下载OpenCV ...

  7. numpy库:常用基本

    numpy 本文主要列出numpy模块常用方法 大部分内容来源于网络,而后经过自己的一点思考和总结,如果有侵权,请联系我 我是一名初学者,有哪些地方有错误请留言,我会及时更改的 创建矩阵(采用ndar ...

  8. sChart.js:一个小型简单的图表库

    介绍 sChart.js 作为一个小型简单的图表库,没有过多的图表类型,只包含了柱状图.折线图.饼状图和环形图四种基本的图表.麻雀虽小,五脏俱全.sChart.js 基本可以满足这四种图表的需求.而它 ...

  9. 数据分析与展示——NumPy库入门

    这是我学习北京理工大学嵩天老师的<Python数据分析与展示>课程的笔记.嵩老师的课程重点突出.层次分明,在这里特别感谢嵩老师的精彩讲解. NumPy库入门 数据的维度 维度是一组数据的组 ...

随机推荐

  1. [WinForm]最小化到系统托盘,右键退出

    1.拉出一个notifyIcon1到用户界面,也可以NEW一个 2.拉出一个ContextMenuStrip控件,命名为mymenu,集合中增加退出 3.notifyIcon1的属性ContextMe ...

  2. 9、Libgdx的输入处理

    (官网:www.libgdx.cn) 不同的平台有着不同的输入方式.桌面用户可以通过键盘和鼠标与应用进行交互,基于浏览器的游戏也是这样.在Android中,鼠标被触摸屏所替代,通常没有实体键盘.And ...

  3. iOS语音通话(语音对讲)

    中间参考了别人的Demo,下载地址不记得了. 因为项目需要做一个语音对讲功能,其实说白了就是类似QQ的语音通话,但是资料少之又少,研究了好久,才跟同事弄出一个粗略的版本.我记性不好,所以来记录一下,也 ...

  4. XBMC源代码分析 2:Addons(皮肤Skin)

    前文已经对XBMC源代码的整体架构进行了分析: XBMC源代码分析 1:整体结构以及编译方法 从这篇文章开始,就要对XBMC源代码进行具体分析了.首先先不分析其C++代码,分析一下和其皮肤相关的代码. ...

  5. Python学习笔记 - 迭代Iteration

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- d = {'a': 1, 'b': 2, 'c': 3} for key in d: # 默认迭代是key ...

  6. 【重构】 代码的坏味道总结 Bad Smell (一) (重复代码 | 过长函数 | 过大的类 | 过长参数列 | 发散式变化 | 霰弹式修改)

    膜拜下 Martin Fowler 大神 , 开始学习 圣经 重构-改善既有代码设计 . 代码的坏味道就意味着需要重构, 对代码的坏味道了然于心是重构的比要前提; . 作者 : 万境绝尘 转载请注明出 ...

  7. kettle文件自动化部署(shell脚本执行):命令行参数传入

    shell脚本中调用kitchen 和 pan去执行,job和transformation文件.分 windows和 dos系统两种. 举个简单的小例子 shell脚本: export JAVA_HO ...

  8. linux grep 和 sed使用

    http://www.cnblogs.com/zhuyp1015/archive/2012/07/01/2572289.html 听说过sed 和 awk 比较强大,专门学习了一下. 使用这些shel ...

  9. 《UNIX网络编程 卷1》之"学习环境搭建"(CentOS 7)

    <UNIX网络编程 卷1>的源码可以从www.unpbook.com下载得到.解压之后的目录为unpv13e. 详细步骤 编译 进入unpv13e目录,按如下步骤编译: ./configu ...

  10. linux 网络不通问题排查

    基本的排错步骤(从上往下)ping 127.0.0.1ping的通说明tcp协议栈没有问题ping 主机地址 ping的通说明网卡没有问题ping 路由器默认网关 ping的通说明包可以到达路由器最后 ...