Numpy 基础知识
1、使用ipython --pylab 自动加载 Numpy、Scipy、Matplotlib模块。
创建数组
a = arange(10)
b = arange(10,dtype='f')
c = arange(10,dtype=inti)
创建多维数组
b = array([arange(3),arange(3)]) 使用array创建数组时,默认指定了数据类型——浮点型
c = array([[1,2],[3,4]])(创建的是2维数组)
b = arange(10).reshape(2,5)
查看数组数据类型
a.dtype
查看数组每个维度的大小(是元组形式,每个数字代表一个维度内元素的个数。几个数字代表几维)
a.shape
查看数组维度个数
a.ndim
数组元素个数
a.size
数组单个元素在内存中所占大小
a.itemsize
整个数组所占大小
a.nbytes
查看单个元素所占字节数
a.dtype.itemsize
转置数组
a.T 效果和 transpose()一样
复数数组中元素的实部
b.real
复数数组中元素的实部
b.imag
遍历数组元素
b.flat 会生成一个flatiter对象。是一个可迭代对象。可以迭代访问数组内的元素。
b.flat[2] 直接获取元素
b.flat[1,4]
b.flat = 7 直接导致所有数组内元素值的改变,此例中所有元素变为7 #原地改变
b.flat[0] = 9
numpy数组转为列表
b = a.tolist()
转换数组数据类型
b = a.astype(str)
所有数据类型
sctypeDict.keys()
数据类型对象是numpy.dtype类的实例。
c = dtype('Floa64')
查看数据类型的字符编码
c.char
查看数据类型
c.type
创建自定义的数据类型。
a = dtype([('name',str_,40),('numitem',int32),('price',float32)])
b = array([('aa',40,2.13),('bb',23,2.6)],dtype=a)
切片和索引
一维数组:和python的列表切片相同
[:] :,表示从开始到结束
[2:7] 表示从2到7
[::-1] 反转数组
多维数组:维度和维度之间用",",表示。每一个维度,和python的列表切片差不多
下面的实例中 b 为一个三维数组。
b[0,0,0] 从左到有,分别对应着从外层到内层的每一层数组。
b[:,0,0] : 表示全选该层的所有数组
b[0,:,:] 选取最外层数组的第一个元素。其包含所有的元素都选中
b[0,...] 多个 : 可以用...(三个英文 . 表示)
b[0,:,::2] 选取第一层下的第一个元素。上一个元素下层的所有元素,上层所有元素的每个再下层元素的个别元素(步长为2,进行选择)
b[:,1,:] 选取所有第二层的数据
b[:,1] 最后一个全选,那么可以忽略不写
b[::-1,::-1,:-1,] 反选所有元素
修改数组维度(所有维度大小相乘等于总的元素数)
b = a.reshape(2,3,4)
b.shape = (4,3,2) #原地改变数组维度
b.resize((2,12)) #原地改变数组维度
平展数组
a = b.ravel()
a = b.flatten()
转置矩阵
c = b.transpose() #对于二维数组来说就是横纵行调转
组合数组
a,b 两个数组维度一样。元素个数一样。
hstack((a,b)) 水平组合。对于二维数组来说就是两个数组左右拼接在一起。
concatenate((a,b),axis=1) 同上。
vstack((a,b)) 垂直组合。对于二维数组来说就是两个数组上下拼接在一起。
concatenate((a,b),axis=0)
dstack((a,b)) 深度组合。沿纵轴(深度)方向进行层叠组合。
columen_stack((a,b)) 列组合,对于一维数组来说是按列方向组合。对于二位数组来说和hstack效果一样
row_stack((a,b)) 行组合。对于一维数组来说是将两个数组上下拼接起来,对于二维数组和vstack效果一样。
数组分割
将一个数组分割成小的数组。
hsplit(a,3) 水平分割,将数组 a 水平分割成 3 个子组。#备注:我看效果,总感觉是沿垂直分割的
split(a,3,axis=1) 同上
vsplit(a,3) 垂直分割,将数组 a 垂直分割成 3 个子组。#备注:总感觉是水平分割
splist(a,3,axis=0)同上
dsplit(a,3)
Numpy 基础知识的更多相关文章
- NumPy 基础知识·翻译完成
原文:Numpy Essentials 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 7241 ...
- NumPy基础知识图谱
所有内容整理自<利用Python进行数据分析>,使用MindMaster Pro 7.3制作,emmx格式,源文件已经上传Github,需要的同学转左上角自行下载.该图谱只是NumPy的基 ...
- 【Numpy】python机器学习包Numpy基础知识学习
一.安装:在之前的博客中已经写过:http://www.cnblogs.com/puyangsky/p/4763234.html 二.python数组切片知识: python中序列类有list.str ...
- python科学计算库的numpy基础知识,完美抽象多维数组(原创)
#导入科学计算库 #起别名避免重名 import numpy as np #小技巧:从外往内看==从左往右看 从内往外看==从右往左看 #打印版本号 print(np.version.version) ...
- numpy基础知识
官网简介: http://www.numpy.org/ ndarry基本属性 ndarry是Numpy中的N维数组对象(N dimentional arrya,ndarray) ndarry中所有的元 ...
- NumPy基础知识:数组和矢量计算
NumPy 的ndarray:一种多维数组对象 该对象是一个快速且灵活的大数据容器,可以利用这种数组对整个数据进行科学计算,语法跟标量元素之间的计算一样. 创建ndarray的方法: array函数: ...
- Python——Numpy基础知识(一)
一.Numpy的引入 1.标准的Python 中用列表(list)保存一组值,可以当作数组使用.但由于列表的元素可以是任何对象,因此列表中保存的是对象的指针.对于数值运算来说,这种结构显然比较浪费内存 ...
- numpy基础知识练习
# 1.导入numpy模块 # 2.创建一个大小为10的空向量 # 3.创建一个大小为10的空向量,但是第五个值为1 # 4.创建一个10-49的ndarray数组 # 5.创建一个3x3的矩阵,其值 ...
- tensorflow笔记(一)之基础知识
tensorflow笔记(一)之基础知识 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7399701.html 前言 这篇no ...
随机推荐
- PHP安全之register_globals (转)
一.register_globals = Off 和 register_globals = On的区别 register_globals是php.ini里的一个配置,这个配置影响到php如何接收传递过 ...
- window下安装两个mysql服务
产生这个想法主要是因为win系统之前装了mysql,服务名为mysql.又重新安装xampp,导致mysql冲突,xampp中的mysql始终启动不起来. 解决方法如下: 1.修改xampp中my ...
- Hyper-V 虚拟机连网
参考:http://www.cnblogs.com/chenxizhang/p/3188005.html(个人推荐) 参考:http://blog.csdn.net/elvis_0123/articl ...
- 动态修改css 规则
页面引用了两个样式表: <link href="css/mui.min.css" rel="stylesheet" /> <link href ...
- 我的JdbcUtils类
这是目录结构: 其中后面三个类都是第一个类的子类,第一个类是父类. JdbcUtils: package com.smt.db; import java.io.IOException; import ...
- 【Spring学习笔记-MVC-1.0】Spring MVC架构介绍
作者:ssslinppp 1. 核心架构图 2. 核心架构的具体流程步骤 3. 具体的核心开发步骤 4. 常用注解 5. <mvc:annotation-driven>配置 6 ...
- RAID磁盘阵列的原理与搭建
学习导图 RAID-0结构关系图 RAID-1结构关系图 RAID-5:条带+分布校验(三块磁盘以上) RAID-10:镜像+条带(四块磁盘以上) RAID-0 添加两块硬盘,分别为磁盘1.磁盘2.最 ...
- pandas的read_csv函数
pd.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer', names=None, index_col=None, ...
- 第13章 TCP编程(2)_TCP的连接和关闭过程
4. TCP的连接和关闭过程 4.1 TCP连接的三次握手和四次挥手 (1)三次握手 ①第1次握手:建立连接.客户端发送连接请求报文段(SYN=1,sequence Number=x):然后客户端进入 ...
- 学习MongoDB 七: MongoDB索引(索引基本操作)(一)
一.简介 在MongoDB建立索引能提高查询效率,只需要扫描索引只存储的这个集合的一小部分,并只把这小部分加载到内存中,效率大大的提高,如果没有建立索引,在查询时,MongoDB必须执行全表扫描,在数 ...