Python库之numpy学习

numpy 高维度数组计算
1、引入
import numpy as np
2、导入本地数据
np.genfromtxt(‘xx.txt’,delimiter=’,’,dtype=str)
其中 delimiter 用于分隔数据,上例就是以逗号作为分隔符分隔数据
3、array数组
np.array([‘9.6’,‘127.8’,‘18.8’],dtype=np.string_)
其中 dtype 指定数据类型
Python库之numpy学习
a、索引或者切片
str_arr1= np.array([[‘9.6’,‘127.8’,‘18.8’],[‘9.6’,‘127.8’,‘18.7’]])
print str_arr1[1,2] 取 第二行第3列数据
在numpy中 : 可表示所有
print str_arr1[:1,:] 取前1行所有列数据
Python库之numpy学习
b、布尔数组做索引
bool_arr=np.array([‘bob’,‘cel’,‘web’,‘cat’,‘bob’])
rand_arr=np.random.rand(5,4)
返回等于bob的第1行和第5行的前2列
print rand_arr[bool_arr==‘bob’, :2]
c、基本运算
vector = np.array([0,1,2,3,4])
与运算
equal_and= (vector = = 0)&(vector= =2)
或运算
equal_may=(vector= =0)|(vector= =2)
最小值
print vector.min()
axis=0 按列相加 axis=1 按行相加
print vector.sum(axis=1)
print vector.sum(axis=0)
Python库之numpy学习
d、函数
创建1维数组
arange_arr=np.arange(15)
将1维数组转换为一个3行5列的数组
arange_arr.reshape(3,5)
数组中所有的元素全部初始化为0,传进去的参数是一个元组
np.zeros((3,4),dtype=np.int_)
数组中元素大于等于10小于30,并每隔5个取一次 ,其结果 10 15 20 25
np.arange(10,30,5)
随机产生2行3列数据
np.random.rand(2,3)
产生从0到 50,产生30个数,形成等差数列的一维数组
np.linspace(0,50,30)
c=np.arange(10,30,5)
返回e的n次方
np.exp©
开根号操作
np.sqrt©
排序
h= np.floor(10np.random.rand(3,4))
0 表示按列排序,1表示按行排序
np.sort(h,axis=1)
np.sort(h,axis=0)
从小到大各个数的索引位置
np.argsort(a)
随机产生2行3列数据
d=np.random.rand(2,3)
向下取整
np.floor(10
d)
e、数组相乘
不用编写循环即可完成对数据的批量运算
darr=np.array([[1,2],[4,5]])
数据相乘,对应元素相乘
darr*darr
做内积,矩阵相乘
np.dot(darr,darr)
判断 相当于对数组中的每一个元素做判断,如果等于3 则返回true 否则返回 false
print (darr==3)
f、矩阵
矩阵转置
tarr=np.arange(15).reshape((3,5))
tarr.T
矩阵拼接 横着拼接 即列拼接
np.hstack((tarr,tarr))
矩阵拼接 竖着拼接 即行拼接
np.vstack((tarr,tarr))
矩阵拆分
f=np.arange(24).reshape((12,2))
竖着拆分即行拆分
np.vsplit(f,3)
按列拆分
g=f.T
np.hsplit(g,(3,4))
矩阵转为向量
np.ravel(d)