python数据分析之numpy基础代码展示 - Python开发技术文章_教程 - 红黑 - 龙8国际娱乐pt老虎机
频道栏目
首页 > 程序开发 > Web开发 > Python > 正文
python数据分析之numpy基础代码展示
2018-07-27 14:40:38      个评论    来源:SunChao3555的博客  
收藏   我要投稿

python数据分析之numpy基础代码展示

龙8国际娱乐pt老虎机coding:utf-8
import scrapy
import xlwt, lxml
import re, json,time
import matplotlib.pyplot as plt
import numpy as np
import pylab
from scipy import linalg
&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;
points=np.arange(-5,5,0.01)
xs,ys=np.meshgrid(points,points)
print(xs)
z=np.sqrt(xs **2+ys**2)
print(z)
print(np.arange(32))
plt.imshow(xs,cmap=plt.cm.gray)
龙8国际娱乐pt老虎机 plt.colorbar()
plt.title("haha")
pylab.show()
&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;

&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;利用数组进行数据处理 将条件逻辑表述为数组运算
列表推导的局限性
 纯python代码,速度不够快
 无法应用于高维数组
where 和where的嵌套
&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;
龙8国际娱乐pt老虎机 l=[i for i in np.arange(4).reshape(2,2)]
龙8国际娱乐pt老虎机 龙8国际娱乐pt老虎机np.where(condition,x,y)如果条件成立执行x,否则执行y。另外,x和y可以继续写成np.where()的形式构成嵌套
龙8国际娱乐pt老虎机 x=[i for i in np.arange(11,20)]
龙8国际娱乐pt老虎机 y=[j for j in np.arange(21,30)]
龙8国际娱乐pt老虎机 print(l)
龙8国际娱乐pt老虎机 print(np.array(l))
龙8国际娱乐pt老虎机 result=np.where(np.linalg.det(l)<0,x,y)
龙8国际娱乐pt老虎机 print(result)
龙8国际娱乐pt老虎机 print((np.array(l)>0).sum())
龙8国际娱乐pt老虎机 bool=np.array(l)>0
龙8国际娱乐pt老虎机 print(bool)
龙8国际娱乐pt老虎机 print(bool.any())龙8国际娱乐pt老虎机有一个为True则返回True
龙8国际娱乐pt老虎机 print(bool.all())龙8国际娱乐pt老虎机有一个为False则返回False
&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;
关于zip函数的一点解释,zip可以接受任意多参数,然后重新组合成1个tuple列表。
zip([1, 2, 3], [4, 5, 6], [7, 8, 9])
返回结果:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;

&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;
龙8国际娱乐pt老虎机排序sort()
龙8国际娱乐pt老虎机找到位置在5%的数字
large_arr=np.random.randn(1000)
large_arr.sort()
print(large_arr[int(0.05*len(large_arr))])
龙8国际娱乐pt老虎机去重以及其他集合运算
&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;
&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;
unique(x) 计算x中的唯一元素,并返回有序结果
intersectld(x,y) 计算x和y中的公共元素,并返回有序结果
unionld(x,y)计算x和y的并集,并返回有序结果
inld(x,y)得到一个表述“x的元素是否包含于y”的布尔数组
setdiffld(x,y) 集合的差,即元素在x中且不在y中
setxorld(x,y) 集合的异或,即存在于一个数组中但不同时存在于两个数组中的元素
&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;
set_arr=np.array([1,1,2,3,4,5])
print(np.unique(set_arr))
set_arr2=np.unique(set_arr)
print(np.intersect1d(set_arr,set_arr2))
&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;
龙8国际娱乐pt老虎机文件的输入输出
龙8国际娱乐pt老虎机arr=np.loadtxt(&龙8国际娱乐pt老虎机39;file.txt&龙8国际娱乐pt老虎机39;,delimiter=&龙8国际娱乐pt老虎机39;,&龙8国际娱乐pt老虎机39;) 读取csv
arr=np.arange(10)
龙8国际娱乐pt老虎机np.save(&龙8国际娱乐pt老虎机39;some_array&龙8国际娱乐pt老虎机39;,arr)
print(np.load(&龙8国际娱乐pt老虎机39;some_array.npy&龙8国际娱乐pt老虎机39;))
np.savez(&龙8国际娱乐pt老虎机39;array_archive.npz&龙8国际娱乐pt老虎机39;,a=arr,b=arr)龙8国际娱乐pt老虎机多个数组压缩存储
arch=np.load(&龙8国际娱乐pt老虎机39;array_archive.npz&龙8国际娱乐pt老虎机39;)
print(arch[&龙8国际娱乐pt老虎机39;a&龙8国际娱乐pt老虎机39;])
&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;
&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;
线性代数 常用的numpy.linalg函数
diag 以一维数组的形式返回方阵的对角线(或非对角线元素),或将一维数组转换为方阵(非对角线元素为0)
dot 矩阵乘法
trace 计算对角线元素的和
det 计算矩阵行列式
eig 计算方阵的特征值和特征向量
inv 计算方阵的逆
pinv 计算矩阵的Moore-Penrose伪逆
qr 计算QR分解
svd 计算奇异值分解
solve 解线性方程Ax=b,其中A为一个方阵
lstsq 计算Ax=b的最小二乘解
&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;
龙8国际娱乐pt老虎机数组重塑 reshape()
&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;
龙8国际娱乐pt老虎机数组的合并与拆分
concatenate 最一般化的连接,沿一条轴连接一维数组 [两个数组连接的axis需要规格一致]
vstack,row_stack 以面向行的方式对数组进行堆叠(沿轴0)
hstack 以面向行的方式对数组进行堆叠(沿轴1)
column_stack 类似于hstack,但会先将一维数组转换为二维列向量
dstack 以面向“深度”的方式对数组进行堆叠(沿轴2)
split 沿指定轴在指定的位置拆分数组
hsplit,vsplit,dsplit split的便捷化函数,分别沿着轴0,1,2进行拆分
&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;&龙8国际娱乐pt老虎机39;
龙8国际娱乐pt老虎机 r_对象
龙8国际娱乐pt老虎机 c_对象
arr1=np.arange(1,7).reshape((2,3))
arr2=np.arange(7,13).reshape((2,3))
arr3=np.arange(13,28).reshape((5,3))
龙8国际娱乐pt老虎机
龙8国际娱乐pt老虎机 print(arr1)
龙8国际娱乐pt老虎机 print(arr2)
龙8国际娱乐pt老虎机连接
龙8国际娱乐pt老虎机 print(np.concatenate([arr1,arr2],0))
龙8国际娱乐pt老虎机 print(np.concatenate([arr1,arr2],1))
龙8国际娱乐pt老虎机 龙8国际娱乐pt老虎机 print(np.concatenate([arr1,arr3],0))
龙8国际娱乐pt老虎机
龙8国际娱乐pt老虎机 龙8国际娱乐pt老虎机堆叠
龙8国际娱乐pt老虎机 print(np.vstack((arr1,arr2)))龙8国际娱乐pt老虎机垂直堆叠
龙8国际娱乐pt老虎机 print(np.hstack((arr1,arr2)))龙8国际娱乐pt老虎机水平堆叠
龙8国际娱乐pt老虎机拆分
print(np.split(arr3,[0,1],axis=1))
arr4=np.random.randn(5,5)
print(arr4)
first,second,third=np.split(arr4,[1,3],axis=0)龙8国际娱乐pt老虎机其中[1,3]为下刀的位置
龙8国际娱乐pt老虎机 first,second,third=np.split(arr4,[1,3],axis=1)
print(first)
print(&龙8国际娱乐pt老虎机39;888888888888&龙8国际娱乐pt老虎机39;)
print(second)
print(&龙8国际娱乐pt老虎机39;888888888888&龙8国际娱乐pt老虎机39;)
print(third)
print(&龙8国际娱乐pt老虎机39;888888888888&龙8国际娱乐pt老虎机39;)
龙8国际娱乐pt老虎机堆叠辅助类
arr5=np.arange(6).reshape((3,2))
arr6=np.random.randn(3,2)
龙8国际娱乐pt老虎机r_用于按行堆叠
print(np.r_[arr5,arr6])
龙8国际娱乐pt老虎机c_用于按列堆叠
print(np.c_[np.r_[arr5,arr6],np.arange(6)])
龙8国际娱乐pt老虎机切片直接转为数组
print(np.c_[1:6,-10:-5])
龙8国际娱乐pt老虎机元素的重复操作
print(arr5.repeat(3))龙8国际娱乐pt老虎机按元素
print(arr5.repeat([1,2,3,4,5,6]))龙8国际娱乐pt老虎机按元素,长度要匹配
龙8国际娱乐pt老虎机repeat(n,axis)指定轴
print(arr5.repeat(2,0))龙8国际娱乐pt老虎机按行
print(arr5.repeat(2,1))龙8国际娱乐pt老虎机按列
龙8国际娱乐pt老虎机tile
print(np.tile(arr5,(2)))龙8国际娱乐pt老虎机贴瓷砖
print(np.tile(arr5,(2,3)))龙8国际娱乐pt老虎机指定每个轴的tile次数
龙8国际娱乐pt老虎机距离矩阵计算
龙8国际娱乐pt老虎机给定mxn阶矩阵X,满足X=[x1,x2,...,xn],这里第i列向量是m维向量。  求nxn矩阵,使得Dij=||Xi-Xj||^2
X = np.array([range(0, 500), range(500, 1000)])
m, n = X.shape
t = time.time()
D = np.zeros([n, n])
for i in range(n):
 for j in range(i + 1, n):
  D[i, j] = linalg.norm(X[:, i] - X[:, j]) ** 2
  D[j, i] = D[i, j]
print(time.time() - t)
t = time.time()
D = np.zeros([n, n])
for i in range(n):
 for j in range(i + 1, n):
  d = X[:, i] - X[:, j]
  D[i, j] = np.dot(d, d)
  D[j, i] = D[i, j]
print(time.time() - t)
t = time.time()
G = np.dot(X.T, X)
D = np.zeros([n, n])
for i in range(n):
 for j in range(i + 1, n):
  D[i, j] = G[i, i] - G[i, j] * 2 + G[j,j]
  D[j, i] = D[i, j]
print(time.time() - t)
t = time.time()
G = np.dot(X.T, X)
H = np.tile(np.diag(G), (n, 1))
D = H + H.T - G * 2
print(time.time() - t)

 

点击复制链接 与好友分享!回本站首页
上一篇:python简单面试题:输入某年某月某日,判断这一天是这一年的第几天
下一篇:利用Python实现权限设置的详细教程
相关文章
图文推荐

关于我们 | 联系我们 | 服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑--致力于做实用的IT技术学习网站

龙8国际娱乐pt老虎机