您的位置:首页 > 编程语言 > Python开发

numpy学习笔记二:numpy基础

2016-05-27 21:14 609 查看
numpy与python的list在使用上是存在一定相似之处的,但是实际上在numpy中数据以元组的形式存放,这就使得在进行矩阵运算时会具有极高的效率,方便进行各种机器学习算法的实现。那么首先看一下在numpy中如何创建一个元组。

a = np.arange(5)
print(a)
print(a.shape)




类似的可以创建二维数组:

m = np.array([np.arange(10),np.arange(10)])
print(m)
print(m.shape)




可以使用与list类似的方法选取元组中的元素:

n1 = m[1,2]
print(n1)
n2 = m[1]
print(n2)




在numpy中可以自行定义元组中的数据类型,有以下数据类型可以选择:

bool 用一位存储的布尔类型(值为TRUE或FALSE)
inti由所在平台决定其精度的整数(一般为int32或int64)
int8整数,范围为-128至127
int16整数,范围为-32 768至32 767
int32整数,范围为-231至231 -1
int64 整数,范围为-263至263 1
uint8无符号整数,范围为0至255
uint16无符号整数,范围为0至65535
uint32无符号整数,范围为0至2^32-1
uint64无符号整数,范围为0至2^64-1
float16半精度浮点数(16位):其中用1位表示正负号,5位表示指数,10位表示尾数
float32单精度浮点数(32位):其中用1位表示正负号,8位表示指数,23位表示尾数
float64或float双精度浮点数(64位):其中用1位表示正负号,11位表示指数,52位表示尾数
complex64复数,分别用两个32位浮点数表示实部和虚部
complex128或complex复数,分别用两个64位浮点数表示实部和虚部
可以在创建元组的时候就规定元组元素的类型:

b = np.arange(7, dtype=np.uint16)




a = np.arange(9)
print(a[3:7])
print(a[::-1])



同理,在多维元组中也可以使用类似的方法:

b = np.arange(24).reshape(2,3,4)
print(b.shape)
print(b)
print(b[:,0,0])
print(b[0])
print(b[0,:,:])
print(b[0,1])
print(b[0,1,::2])




在创建了数组之后(numpy中的数组,即之前提到的元组),可以通过numpy进行组合:

import sys
from datetime import datetime
import numpy as np
a = np.arange(9).reshape(3,3)
print(a)
b = a*2
print(b)
print('==========ab水平组合==========')
print(np.hstack((a,b)))
print('==========ab垂直组合==========')
print(np.vstack((a,b)))
print('==========使用concatenate把axis设为0==========')
c = np.concatenate((a,b),axis=0)
print(c)
print('==========使用concatenate把axis设为1==========')
c = np.concatenate((a,b),axis=1)
print(c)
print('==========深度组合==========')
c = np.dstack((a,b))
print(c)
print('==========列组合==========')
a = np.arange(4)
b = a**2
c = np.column_stack((a,b))
print(c)


可以根据代码中的注释了解各种组合的方法,除此之外还有行组合,row_stack与列组合是类似的。

除了组合,还可以对数组进行分割:

a = np.arange(9).reshape(3,3)
print(a)
print('=======水平分割======')
print(np.hsplit(a,3))
print('=======垂直分割======')
print(np.vsplit(a,3))



在实际使用中,还可以使用数组的一些属性进行操作:

ndim数组的维数

size 给出数组元素的总个数

itemsize 数组元素所占的字节数

nbytes整个数组所占的字节数

T转置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  numpy 数据 python