AI数据分析(二)
NumPy库
NumPy数组对象
NumPy数据类型
数组的索引
数组的切片
数组的组合
数组的分割
数组的属性
NumPy数组对象
NumPy数据类型
#numpy数据类型
print "In: float64(42)"
print np.float64(42) print "In: int8(42.0)"
print np.int8(42.0) print "In: bool(42)"
print np.bool(42) print np.bool(0) print "In: bool(42.0)"
print np.bool(42.0) print "In: float(True)"
print np.float(True)
print np.float(False) print "In: arange(7, dtype=uint16)"
print np.arange(7, dtype=np.uint16) print "In: int(42.0 + 1.j)"
数据类型
# 数据类型转换
arr = np.array([1, 2, 3, 4, 5])
arr.dtype
float_arr = arr.astype(np.float64)
float_arr.dtype arr = np.array([3.7, -1.2, -2.6, 0.5, 12.9, 10.1])
arr
arr.astype(np.int32) numeric_strings = np.array(['1.25', '-9.6', ''], dtype=np.string_)
numeric_strings.astype(float)
数据类型转换
import numpy as np
a = np.array([[1,2],[3,4]])
print(a.dtype.byteorder) #= print(a.dtype.itemsize) #
数据类型对象
print np.arange(7, dtype='f')
print np.arange(7, dtype='D') print np.dtype(float) print np.dtype('f') print np.dtype('d') print np.dtype('f8') print np.dtype('Float64')
类型代码
#dtype类的属性
t = np.dtype('Float64') print t.char print t.type print t.str #创建自定义数据类型
t = np.dtype([('name', np.str_, 40), ('numitems', np.int32), ('price', np.float32)])
print t print t['name'] itemz = np.array([('Meaning of life DVD', 42, 3.14), ('Butter', 13, 2.72)], dtype=t) print itemz[1]
dtype类的属性、创建自定义数据类型
数组操作
数组与标量之间的运算
#创建多维数组
m=np.array([np.arange(2),np.arange(2)])
print(m)
print(m.shape)
print(m.dtype)
#数组与标量的运算
arr = np.array([[1., 2., 3.], [4., 5., 6.]])
arr
arr * arr
结果: array([[ 1., 4., 9.],
[16., 25., 36.]])
arr - arr 1 / arr
arr ** 0.5
数组的索引
#布尔型索引
names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
data = randn(7, 4)
names
data names == 'Bob'
data[names == 'Bob'] data[names == 'Bob', 2:]
data[names == 'Bob', 3] names != 'Bob'
data[-(names == 'Bob')] mask = (names == 'Bob') | (names == 'Will')
mask
data[mask] data[data < 0] = 0
data data[names != 'Joe'] = 7
data
布尔型索引
#花式索引
arr = np.empty((8, 4))
for i in range(8):
arr[i] = i
arr arr[[4, 3, 0, 6]] arr[[-3, -5, -7]] arr = np.arange(32).reshape((8, 4))
arr
arr[[1, 5, 7, 2], [0, 3, 1, 2]] arr[[1, 5, 7, 2]][:, [0, 3, 1, 2]] arr[np.ix_([1, 5, 7, 2], [0, 3, 1, 2])]
花式索引
数组的切片
#多维数组的切片与索引
b = np.arange(24).reshape(2,3,4) #生成二维数组,三行四列 print b.shape print b
#array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]], [[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]]) print b[0,0,0] print b[:,0,0] print b[0] print b[0, :, :] print b[0, ...] print b[0,1] print b[0,1,::2] print b[...,1] print b[:,1] print b[0,:,1] print b[0,:,-1] print b[0,::-1, -1] print b[0,::2,-1] print b[::-1] s = slice(None, None, -1)
print b[(s, s, s)]
数组的组合
#数组转置
arr = np.arange(15).reshape((3, 5))
arr
arr.T #改变数组的维度
b = np.arange(24).reshape(2,3,4) print b print b.ravel() print b.flatten() b.shape = (6,4) print b print b.transpose() b.resize((2,12)) print b
数组转置、改变数组的维度
#组合数组
a = np.arange(9).reshape(3,3) print a b = 2 * a print b print np.hstack((a, b)) 水平组合 print np.concatenate((a, b), axis=1) print np.vstack((a, b)) 垂直组合 print np.concatenate((a, b), axis=0) print np.dstack((a, b)) 深度组合 oned = np.arange(2) print oned twice_oned = 2 * oned print twice_oned print np.column_stack((oned, twice_oned)) 列组合 print np.column_stack((a, b)) print np.column_stack((a, b)) == np.hstack((a, b)) print np.row_stack((oned, twice_oned)) print np.row_stack((a, b)) print np.row_stack((a,b)) == np.vstack((a, b))
组合数组
数组的分割
#数组的分割
a = np.arange(9).reshape(3, 3) print a print np.hsplit(a, 3) 水平分割 print np.split(a, 3, axis=1) print np.vsplit(a, 3) 垂直分割 print np.split(a, 3, axis=0) c = np.arange(27).reshape(3, 3, 3) print c print np.dsplit(c, 3)
数组的分割
数组的属性
#数组的属性
b=np.arange(24).reshape(2,12)
b.ndim 维度
b.size 数组元素总个数
b.itemsize 元素占的字节数
b.nbytes b = np.array([ 1.+1.j, 3.+2.j])
b.real 实部
b.imag 虚部 b=np.arange(4).reshape(2,2)
b.flat
b.flat[2] #数组的转换
b = np.array([ 1.+1.j, 3.+2.j])
print b print b.tolist() 转化成python中的列表 print b.tostring() print np.fromstring('\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\x08@\x00\x00\x00\x00\x00\x00\x00@', dtype=complex) print np.fromstring('20:42:52',sep=':', dtype=int) print b print b.astype(int) print b.astype('complex')
数组的属性
AI数据分析(二)的更多相关文章
- SPSS数据分析—二分类Logistic回归模型
对于分类变量,我们知道通常使用卡方检验,但卡方检验仅能分析因素的作用,无法继续分析其作用大小和方向,并且当因素水平过多时,单元格被划分的越来越细,频数有可能为0,导致结果不准确,最重要的是卡方检验不能 ...
- Python数据分析(二): Numpy技巧 (1/4)
In [1]: import numpy numpy.__version__ Out[1]: '1.13.1' In [2]: import numpy as np
- Python数据分析(二): Numpy技巧 (2/4)
numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性. 昨天晚上发了第一 ...
- Python数据分析(二): Numpy技巧 (3/4)
numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性. 昨天晚上发了第一 ...
- Python数据分析(二): Numpy技巧 (4/4)
numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性. 第一部分: ht ...
- 【python数据分析实战】电影票房数据分析(二)数据可视化
目录 图1 每年的月票房走势图 图2 年票房总值.上映影片总数及观影人次 图3 单片总票房及日均票房 图4 单片票房及上映月份关系图 在上一部分<[python数据分析实战]电影票房数据分析(一 ...
- Python+Requests+Bs4(解析)爬取某诗词信息(数据分析二)
1.环境安装 - 需要将pip源设置为国内源,阿里源.豆瓣源.网易源等 - windows (1)打开文件资源管理器(文件夹地址栏中) (2)地址栏上面输入 %appdata% (3)在这里面新建一个 ...
- [USB波形分析] 全速USB波形数据分析(二)
在上一篇文章全速USB波形数据分析(一)介绍了全速USB的数据包(Packet)的组成,数据的类型等基本知识.这篇文章介绍USB的几种传输方式 事务(Transaction) USB协议定义了三种不同 ...
- Python数据分析(二): Pandas技巧 (1)
第一部分: ipython http://www.cnblogs.com/cgzl/p/7623347.html 第二部分: numpy http://www.cnblogs.com/cgzl/p/7 ...
随机推荐
- asp.net core源码地址
https://github.com/dotnet/corefx 这个是.net core的 开源项目地址 https://github.com/aspnet 这个下面是asp.net core 框架 ...
- AI佳作解读系列(二)——目标检测AI算法集杂谈:R-CNN,faster R-CNN,yolo,SSD,yoloV2,yoloV3
1 引言 深度学习目前已经应用到了各个领域,应用场景大体分为三类:物体识别,目标检测,自然语言处理.本文着重与分析目标检测领域的深度学习方法,对其中的经典模型框架进行深入分析. 目标检测可以理解为是物 ...
- 20165223 《信息安全系统设计基础》 实现mybash
一.了解 mybash 1. 简介 bash 是 Bourne Again Shell 的缩写,是linux默认的标准shell(也是大家常说的系统内核),bash也是Unix/Linux上常见的 ...
- CF5E Bindian Signalizing
题目 这题目是真的很水,洛谷给他紫题也差不多算恶意评分了吧233 这种一眼切的题改了很长时间,不是什么n-1搞错,就是什么and打成or,所以写这篇博客给自己长个记性QWQ 题意:n座山组成一个环,相 ...
- Pack
背包专题 背包吼哇! 基础的背包分为OI01背包,完全背包,多重背包,二维背包,分组背包,树形背包,求方案数等.......... 作为DP的一个基础部分还是有必要写一写的. 01背包: 一个物品能取 ...
- web.xml:<dispatcher>
web.xml 的 <dispatcher> 是 <filter-mapping> 下的子标签,指定 Filter 对应的请求方式,其可选值如下: REQUEST 客户端在地址 ...
- Ajax与JSON共同使用的小实例
实现的效果: 点击“点击”按钮,可以通过Ajax从服务器调过来相应的文档文件,而不需重新加载页面. 通过json可以将调过来的文档(String)转换为相应的json对象,从而对文档中数据进行操作. ...
- HTTP和RFC
RFC: Request For Comments(RFC),是一系列以编号排定的文件.文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件.目前RFC文件是由Internet Socie ...
- C++回顾day03---<模板>
一:函数模板 建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表.这个通用函数就称为函数模板.凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需要在模板中定义一次 ...
- JavaScript 执行环境、作用域、内存管理及垃圾回收机制
前言 JavaScript具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中使用的内存. [原理]找出那些不再继续使用的变量,然后释放其占用的内存.为此,垃圾收集器会按照固定的时间间隔( ...

