官网简介:

http://www.numpy.org/

ndarry基本属性

  • ndarry是Numpy中的N维数组对象(N dimentional arrya,ndarray)
  • ndarry中所有的元素必须是相同类型的
  data = [[1,2,3],[4,5,6]]
a = np.arry(data)

基本属性:

  1. ndim:一个衡量数组维度的对象 (a.ndim --> 2)
  2. shape:一个衡量各个维度大小的元祖 (a.shape --> (2,3))
  3. dtype:一个用于说明数组数据类型的对象 (a.dtype --> int64)

ndarray数组的数据类型

  1. Numpy中的数据类型有
int8、uint8、int16、unit16 、int32、unit32、int64、unit64、
float16, float32, float64, float128, complex64, complex128, complex256, bool, object,
string, unicode.

数据类型的转换

  • [x] astype
data = np.array(['1.23','4.56','7.89'])
res = data.astype(float)
  • [x] dtype
data = np.array([1,2,3], dtype=np.float64) #默认int64 改成float64d

索引与切片

索引(Indexing)

  1. 一维数组:a[0] a[1] a[2]
  2. 二维数组:a[0,0] a[0,1] a[0,2]
  3. axis 0 --> 列
  4. axis 1 --> 行

切片(Slicing)

  1. ndarray的切片是原始数组的视图,做修改时,数据不会被复制,而是直接反映到

    源数据上。如果想要得到切片的副本,则需要使用copy(),例如 arr[2:3].copy()。

丰富的索引和切片方式

  1. 基本索引和切片方式
import numpy as np
arr1d = np.arange(10)
arr2d = np.array([[1,2,3],[4,5,6]])
arr3d = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]) [:]、 [x] 、[x : y]、 [x,y]、 [x][y] 、[x:]、 [:y] 、[:y, x:]、 [x,:y]、 [:,:y] (比如x=1,y=2)
  1. 布尔型索引
  • 布尔型索引可以帮助我们筛选出符合条件的数据(类似Excel中的Vlookup函数)
GDP_Percent = np.array([7.90,7.80,7.30, 6.90,6.70])
Year = np.array([2012,2013,2014,2015,2016])
print(Year[GDP_Percent>7]) [2012 2013 2014]
  1. 花式索引(Fancy Indexing)
  • 利用整数数组进行索引,index为默认的以0开始的整数形式。
  • fancy indexing概念上很简单:即指传递索引数组以便一次得到多个数组元素。使用fancy indexing时要特别注意的一点是返回数组的shape反映的是索引数组的shape而不是被索引的原数组的shape。
简单情况:一维数组
data= np.random.randn(8,4) print(data)
print(data[[2,4,0,6]])
print(data[[-6,-4,-8,-2]]) 高级用法:多维数组
X = np.arange(12).reshape((3,4))
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]]) row = np.array([0, 1, 2])
col = np.array([2, 1, 3])
X[row,col]
array([2, 5, 11]) #第一个元素2代表X[0, 2],在索引中将列向量和行向量结合可以得到二维结果 X[row[:, np.newaxis], col] # 行向量中的每个值与每个列向量配对(用了numpy的broadcasting)
row[:, np.newaxis]
array([[0],
[1],
[2]]) array([[ 2, 1, 3],
[ 6, 5, 7],
[10, 9, 11]])

numpy基础知识的更多相关文章

  1. NumPy 基础知识·翻译完成

    原文:Numpy Essentials 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 7241 ...

  2. NumPy基础知识图谱

    所有内容整理自<利用Python进行数据分析>,使用MindMaster Pro 7.3制作,emmx格式,源文件已经上传Github,需要的同学转左上角自行下载.该图谱只是NumPy的基 ...

  3. 【Numpy】python机器学习包Numpy基础知识学习

    一.安装:在之前的博客中已经写过:http://www.cnblogs.com/puyangsky/p/4763234.html 二.python数组切片知识: python中序列类有list.str ...

  4. python科学计算库的numpy基础知识,完美抽象多维数组(原创)

    #导入科学计算库 #起别名避免重名 import numpy as np #小技巧:从外往内看==从左往右看 从内往外看==从右往左看 #打印版本号 print(np.version.version) ...

  5. Numpy 基础知识

    1.使用ipython --pylab 自动加载 Numpy.Scipy.Matplotlib模块. 创建数组a = arange(10) b = arange(10,dtype='f')c = ar ...

  6. NumPy基础知识:数组和矢量计算

    NumPy 的ndarray:一种多维数组对象 该对象是一个快速且灵活的大数据容器,可以利用这种数组对整个数据进行科学计算,语法跟标量元素之间的计算一样. 创建ndarray的方法: array函数: ...

  7. Python——Numpy基础知识(一)

    一.Numpy的引入 1.标准的Python 中用列表(list)保存一组值,可以当作数组使用.但由于列表的元素可以是任何对象,因此列表中保存的是对象的指针.对于数值运算来说,这种结构显然比较浪费内存 ...

  8. numpy基础知识练习

    # 1.导入numpy模块 # 2.创建一个大小为10的空向量 # 3.创建一个大小为10的空向量,但是第五个值为1 # 4.创建一个10-49的ndarray数组 # 5.创建一个3x3的矩阵,其值 ...

  9. tensorflow笔记(一)之基础知识

    tensorflow笔记(一)之基础知识 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7399701.html 前言 这篇no ...

随机推荐

  1. C中的volatile关键字

    volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据.如果没有volatile关键字,则编译器可能优化读取和存储 ...

  2. 【bzoj2561】最小生成树

    嗯……这题是一个网络流. 加入的边为u,v长度L 则所有长度大于L的边不能使得u,v连通 求个最小割即可.小于同理 两次最小割结果相加. #include<bits/stdc++.h> # ...

  3. ORM-班级信息系统

    ORM版学员管理系统 班级表 表结构 class Class(models.Model): id = models.AutoField(primary_key=True) # 主键 cname = m ...

  4. redis使用管道pipeline提升批量操作性能(php演示)

    Redis是一个TCP服务器,支持请求/响应协议. 在Redis中,请求通过以下步骤完成: 客户端向服务器发送查询,并从套接字读取,通常以阻塞的方式,用于服务器响应. 服务器处理命令并将响应发送回客户 ...

  5. C# WinForm开发 取消窗体关闭按钮

    //禁用窗体的关闭按钮 private const int CP_NOCLOSE_BUTTON = 0x200; protected override CreateParams CreateParam ...

  6. C# 调试程序时如何输入命令行参数

    调试程序时如何输入命令行参数http://www.a769.com/archives/320.html 开发命令行程序时,我们会疑惑,从那里输入参数呢?请看下面的教程,让你摆脱困扰. 1.点击菜单栏: ...

  7. head first (二):观察者模式

    首先推荐一下别人写的,很不错可以参考,http://www.cnblogs.com/li-peng/archive/2013/02/04/2892116.html 1.定义 观察者模式:在对象之间定义 ...

  8. /usr/bin/env: php: No such file or directory 【xunsearch demo项目体验】【已解决】

    出现这个问题的原因是/usr/local/bin 或 /usr/bin 下面没有php可执行文件 解决办法: 建立一条硬链接 ln /path/to/bin/php  /usr/local/bin/p ...

  9. android studio中timber的配置

    在你项目的module级别的build.gradle中加入 compile 'com.jakewharton.timber:timber:3.1.0' 然后Timber的依赖就添加进来了.

  10. HDU 2647 Reward【反向拓扑排序】

    Reward Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...