导航:首页 > 编程语言 > pythonnumpysvd

pythonnumpysvd

发布时间:2022-04-23 12:58:36

① 用python的numpy创建一个矩阵

② Python numpy,scipy,pandas这些库的区别是什么

有目的的话,就先简单过一下文档,然后开始在目的驱动下,加深某部分的学习。 没目的的话,就看本书,科学计算,数据分析方面的python书有不少。

③ python中稀疏矩阵的怎么用numpy处理

NumPy是一个关于矩阵运算的库,熟悉Matlab的都应该清楚,这个库就是让python能够进行矩阵话的操作,而不用去写循环操作。
下面对numpy中的操作进行总结。
numpy包含两种基本的数据类型:数组和矩阵。
数组(Arrays)
>>> from numpy import *>>> a1=array([1,1,1]) #定义一个数组>>> a2=array([2,2,2])>>> a1+a2 #对于元素相加array([3, 3, 3])>>> a1*2 #乘一个数array([2, 2, 2])##>>> a1=array([1,2,3])>>> a1
array([1, 2, 3])>>> a1**3 #表示对数组中的每个数做平方array([ 1, 8, 27])##取值,注意的是它是以0为开始坐标,不matlab不同>>> a1[1]2##定义多维数组>>> a3=array([[1,2,3],[4,5,6]])>>> a3
array([[1, 2, 3],
[4, 5, 6]])>>> a3[0] #取出第一行的数据array([1, 2, 3])>>> a3[0,0] #第一行第一个数据1>>> a3[0][0] #也可用这种方式1##数组点乘,相当于matlab点乘操作>>> a1=array([1,2,3])>>> a2=array([4,5,6])>>> a1*a2
array([ 4, 10, 18])

Numpy有许多的创建数组的函数:
import numpy as np

a = np.zeros((2,2)) # Create an array of all zerosprint a # Prints "[[ 0. 0.]
# [ 0. 0.]]"b = np.ones((1,2)) # Create an array of all onesprint b # Prints "[[ 1. 1.]]"c = np.full((2,2), 7) # Create a constant arrayprint c # Prints "[[ 7. 7.]
# [ 7. 7.]]"d = np.eye(2) # Create a 2x2 identity matrixprint d # Prints "[[ 1. 0.]
# [ 0. 1.]]"e = np.random.random((2,2)) # Create an array filled with random valuesprint e # Might print "[[ 0.91940167 0.08143941]
# [ 0.68744134 0.87236687]]"

数组索引(Array indexing)
矩阵
矩阵的操作与Matlab语言有很多的相关性。
#创建矩阵
>>> m=mat([1,2,3])
>>> m
matrix([[1, 2, 3]])

#取值
>>> m[0] #取一行
matrix([[1, 2, 3]])
>>> m[0,1] #第一行,第2个数据2>>> m[0][1] #注意不能像数组那样取值了
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
File "/usr/lib64/python2.7/site-packages/numpy/matrixlib/defmatrix.py", line 305, in __getitem__
out = N.ndarray.__getitem__(self, index)
IndexError: index 1 is out of bounds for axis 0 with size 1#将Python的列表转换成NumPy的矩阵
>>> list=[1,2,3]
>>> mat(list)
matrix([[1, 2, 3]])

#矩阵相乘
>>> m1=mat([1,2,3]) #1行3列
>>> m2=mat([4,5,6])
>>> m1*m2.T #注意左列与右行相等 m2.T为转置操作
matrix([[32]])
>>> multiply(m1,m2) #执行点乘操作,要使用函数,特别注意
matrix([[ 4, 10, 18]])

#排序
>>> m=mat([[2,5,1],[4,6,2]]) #创建2行3列矩阵
>>> m
matrix([[2, 5, 1],
[4, 6, 2]])
>>> m.sort() #对每一行进行排序
>>> m
matrix([[1, 2, 5],
[2, 4, 6]])

>>> m.shape #获得矩阵的行列数
(2, 3)
>>> m.shape[0] #获得矩阵的行数2>>> m.shape[1] #获得矩阵的列数3#索引取值
>>> m[1,:] #取得第一行的所有元素
matrix([[2, 4, 6]])
>>> m[1,0:1] #第一行第0个元素,注意左闭右开
matrix([[2]])
>>> m[1,0:3]
matrix([[2, 4, 6]])
>>> m[1,0:2]
matrix([[2, 4]])35363738394

扩展矩阵函数tile()
例如,要计算[0,0,0]到一个多维矩阵中每个点的距离,则要将[0,0,0]进行扩展。
tile(inX, (i,j)) ;i是扩展个数,j是扩展长度
实例如下:
>>>x=mat([0,0,0])
>>> x
matrix([[0, 0, 0]])
>>> tile(x,(3,1)) #即将x扩展3个,j=1,表示其列数不变
matrix([[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])
>>> tile(x,(2,2)) #x扩展2次,j=2,横向扩展
matrix([[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0]])1234567891011121314

④ 如何为python安装numpy函数库

也可以用python自带的安装工具,pip install numpy scipy 等。如果没有pip的话,可以试试easy-install numpy scipy。打开cmd,在里面输入这些命令。 不想自己一个一个装的话,最简单的方法是安装python(x,y)套装,也可以考虑enthought套装

⑤ 矩阵维度 python 不使用numpy

pca = PCA(n_components=2) #
#print pca
# PCA(=True, iterated_power='auto', n_components=2, random_state=None,
# svd_solver='auto', tol=0.0, whiten=False)
rece_X = pca.fit_transform(x)
# 查看降维后的数据分布
plt.scatter(rece_X[:,0], rece_X[:,1],c = y)
plt.show()

⑥ python有多少个包

1、 Import 函数 from 库,往后可以直接使用 函数 import库,要使用函数则需 库.函数。
2、 %matplotlib inline是jupyter notebook里的命令, 意思是将那些用matplotlib绘制的图显示在页面里而不是弹出一个窗口
3、 用图形表示回归效果可以采用横坐标为实际值,纵坐标为预测值(采用横坐标的标定作为标定)则预测点越集中在y=x坐标线上则回归预测效果越好。
4、 安装,http://www.lfd.uci.e/~gohlke/pythonlibs/#opencv提供各种包whl文件。安装whl文件需要设置环境变量为D:SOFTPython27Scripts, pip install whl提示安装成功。回到包所在文件打开cmd窗口输入pip install 包名,安装包。使用 import 包名测试是否安装成功。
推荐学习《python教程》
5、 Numpy包: numpy数组切片的修改直接反映到原数组,但是列表对切片的修改不反应到原数组。建立多维数组 np.arange(1,10).reshape(3,3)
Numpy.array创建一个矩阵a,并对矩阵进行计算最大a.max(),最小,平均数a.mean()。也可以按行处理a.max(axis=1),计算某行数据的最大,最小以及平均数。遍历前两行的第二列。三维可以理解为一个数字组成的立方块。
Numpy支持对多维数组的翻转等操作,求和,计算三角函数,多次方求和以及SVD分解等多种操作。以及随机函数模块。Numpy.random
6、 Matplotlib:处理数据可视化的包,利用numpy强大的运算能力结合matplotlib使用;使用matplotlib画散点图步骤,第一种使用scatter(x,y),系统自动建立坐标系,第二种使用plot(x,y)系统也是自动建立坐标系,plot函数默认画连线图。比较,scatter比plot适合画散点图。

7、 Pandas是一个为解决python数据分析而用的包,可以快速构建数据结构。
8、 scikit-learn简称sklearn,在导入数据包时只能使用import sklearn。
线性回归函数采用最小二乘函数拟合。给定n个参数及其对应的x值以及应该输出的y。训练相关参数的值,再用这个参数给出线性方程预测未知y的值。函数调用方法,先创建一个引用,给定训练值。利用训练模型去预测测试集。
Kmeans:plot 是做折线图,也可以做散点图;scatter专门做散点图。在数据处理的时候要明确转变成数值型,不然会出现莫名现象Kmeans使用方法,首先创建KMeans模型,然后加载数据返回数据分类结果。
9、 request:网络爬虫相关包,可以伪装成浏览器,躲过服务器审查。

⑦ Python怎么生成三维数


1、创建一般的多维数组

importnumpyasnp
a=np.array([1,2,3],dtype=int)#创建1*3维数组array([1,2,3])
type(a)#numpy.ndarray类型
a.shape#维数信息(3L,)
a.dtype.name#'int32'
a.size#元素个数:3
a.itemsize#每个元素所占用的字节数目:4


b=np.array([[1,2,3],[4,5,6]],dtype=int)#创建2*3维数组array([[1,2,3],[4,5,6]])
b.shape#维数信息(2L,3L)
b.size#元素个数:6
b.itemsize#每个元素所占用的字节数目:4


c=np.array([[1,2,3],[4,5,6]],dtype='int16')#创建2*3维数组array([[1,2,3],[4,5,6]],dtype=int16)
c.shape#维数信息(2L,3L)
c.size#元素个数:6
c.itemsize#每个元素所占用的字节数目:2
c.ndim#维数


d=np.array([[1,2,3],[4,5,6]],dtype=complex)#复数二维数组
d.itemsize#每个元素所占用的字节数目:16
d.dtype.name#元素类型:'complex128'

2、创建一般的多维数组

importnumpyasnp
a=np.array([1,2,3],dtype=int)#创建1*3维数组array([1,2,3])
type(a)#numpy.ndarray类型
a.shape#维数信息(3L,)
a.dtype.name#'int32'
a.size#元素个数:3
a.itemsize#每个元素所占用的字节数目:4


b=np.array([[1,2,3],[4,5,6]],dtype=int)#创建2*3维数组array([[1,2,3],[4,5,6]])
b.shape#维数信息(2L,3L)
b.size#元素个数:6
b.itemsize#每个元素所占用的字节数目:4


c=np.array([[1,2,3],[4,5,6]],dtype='int16')#创建2*3维数组array([[1,2,3],[4,5,6]],dtype=int16)
c.shape#维数信息(2L,3L)
c.size#元素个数:6
c.itemsize#每个元素所占用的字节数目:2
c.ndim#维数


d=np.array([[1,2,3],[4,5,6]],dtype=complex)#复数二维数组
d.itemsize#每个元素所占用的字节数目:16
d.dtype.name#元素类型:'complex128'

3、创建特殊类型的多维数组

a1=np.zeros((3,4))#创建3*4全零二维数组
输出:
array([[0.,0.,0.,0.],
[0.,0.,0.,0.],
[0.,0.,0.,0.]])
a1.dtype.name#元素类型:'float64'
a1.size#元素个数:12
a1.itemsize#每个元素所占用的字节个数:8


a2=np.ones((2,3,4),dtype=np.int16)#创建2*3*4全1三维数组
a2=np.ones((2,3,4),dtype='int16')#创建2*3*4全1三维数组
输出:
array([[[1,1,1,1],
[1,1,1,1],
[1,1,1,1]],

[[1,1,1,1],
[1,1,1,1],
[1,1,1,1]]],dtype=int16)


a3=np.empty((2,3))#创建2*3的未初始化二维数组
输出:(mayvary)
array([[1.,2.,3.],
[4.,5.,6.]])


a4=np.arange(10,30,5)#初始值10,结束值:30(不包含),步长:5
输出:array([10,15,20,25])
a5=np.arange(0,2,0.3)#初始值0,结束值:2(不包含),步长:0.2
输出:array([0.,0.3,0.6,0.9,1.2,1.5,1.8])
fromnumpyimportpi
np.linspace(0,2,9)#初始值0,结束值:2(包含),元素个数:9
输出:
array([0.,0.25,0.5,0.75,1.,1.25,1.5,1.75,2.])
x=np.linspace(0,2*pi,9)
输出:
array([0.,0.78539816,1.57079633,2.35619449,3.14159265,
3.92699082,4.71238898,5.49778714,6.28318531])


a=np.arange(6)
输出:
array([0,1,2,3,4,5])
b=np.arange(12).reshape(4,3)
输出:
array([[0,1,2],
[3,4,5],
[6,7,8],
[9,10,11]])
c=np.arange(24).reshape(2,3,4)
输出:
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]]])

使用numpy.set_printoptions可以设置numpy变量的打印格式

在ipython环境下,使用help(numpy.set_printoptions)查询使用帮助和示例

4、多维数组的基本操作

加法和减法操作要求操作双方的维数信息一致,均为M*N为数组方可正确执行操作。

a=np.arange(4)
输出:
array([0,1,2,3])
b=a**2
输出:
array([0,1,4,9])
c=10*np.sin(a)
输出:
array([0.,8.41470985,9.09297427,1.41120008])


n<35
输出:
array([True,True,True,True],dtype=bool)

A=np.array([[1,1],[0,1]])
B=np.array([[2,0],[3,4]])
C=A*B#元素点乘
输出:
array([[2,0],
[0,4]])
D=A.dot(B)#矩阵乘法
输出:
array([[5,4],
[3,4]])
E=np.dot(A,B)#矩阵乘法
输出:
array([[5,4],
[3,4]])

多维数组操作过程中的类型转换

When operating with arrays of different types, the type of the
resulting array corresponds to the more general or precise one (a
behavior known as upcasting)

即操作不同类型的多维数组时,结果自动转换为精度更高类型的数组,即upcasting

数组索引、切片和迭代

a=np.ones((2,3),dtype=int)#int32
b=np.random.random((2,3))#float64
b+=a#正确
a+=b#错误
a=np.ones(3,dtype=np.int32)
b=np.linspace(0,pi,3)
c=a+b
d=np.exp(c*1j)
输出:
array([0.54030231+0.84147098j,-0.84147098+0.54030231j,
-0.54030231-0.84147098j])
d.dtype.name
输出:
'complex128'

多维数组的一元操作,如求和、求最小值、最大值等

a=np.random.random((2,3))
a.sum()
a.min()
a.max()


b=np.arange(12).reshape(3,4)
输出:
array([[0,1,2,3],
[4,5,6,7],
[8,9,10,11]])
b.sum(axis=0)#按列求和
输出:
array([12,15,18,21])
b.sum(axis=1)#按行求和
输出:
array([6,22,38])
b.cumsum(axis=0)#按列进行元素累加
输出:
array([[0,1,2,3],
[4,6,8,10],
[12,15,18,21]])
b.cumsum(axis=1)#按行进行元素累加
输出:
array([[0,1,3,6],
[4,9,15,22],
[8,17,27,38]])

universal functions

B=np.arange(3)
np.exp(B)
np.sqrt(B)
C=np.array([2.,-1.,4.])
np.add(B,C)

其他的ufunc函数包括:

all,any,apply_along_axis,argmax,argmin,argsort,average,bincount,ceil,clip,conj,corrcoef,cov,cross,cumprod,cumsum,diff,dot,floor,inner,lexsort,max,maximum,mean,median,min,minimum,nonzero,outer,prod,re,round,sort,std,sum,trace,transpose,var,vdot,vectorize,where

5. 数组索引、切片和迭代

a=np.arange(10)**3
a[2]
a[2:5]
a[::-1]#逆序输出
foriina:
print(i**(1/3.))
deff(x,y):
return10*x+y
b=np.fromfunction(f,(5,4),dtype=int)
b[2,3]
b[0:5,1]
b[:,1]
b[1:3,:]
b[-1]
c=np.array([[[0,1,2],[10,11,12]],[[100,101,102],[110,111,112]]])
输出:
array([[[0,1,2],
[10,11,12]],

[[100,101,102],
[110,111,112]]])
c.shape
输出:
(2L,2L,3L)
c[0,...]
c[0,:,:]
输出:
array([[0,1,2],
[10,11,12]])
c[:,:,2]
c[...,2]
输出:
array([[2,12],
[102,112]])

forrowinc:
print(row)

forelementinc.flat:
print(element)
a=np.floor(10*np.random.random((3,4)))
输出:
array([[3.,9.,8.,4.],
[2.,1.,4.,6.],
[0.,6.,0.,2.]])
a.ravel()
输出:
array([3.,9.,8.,...,6.,0.,2.])
a.reshape(6,2)
输出:
array([[3.,9.],
[8.,4.],
[2.,1.],
[4.,6.],
[0.,6.],
[0.,2.]])
a.T
输出:
array([[3.,2.,0.],
[9.,1.,6.],
[8.,4.,0.],
[4.,6.,2.]])
a.T.shape
输出:
(4L,3L)
a.resize((2,6))
输出:
array([[3.,9.,8.,4.,2.,1.],
[4.,6.,0.,6.,0.,2.]])
a.shape
输出:
(2L,6L)
a.reshape(3,-1)
输出:
array([[3.,9.,8.,4.],
[2.,1.,4.,6.],
[0.,6.,0.,2.]])

详查以下函数:

ndarray.shape,reshape,resize,ravel

6. 组合不同的多维数组

a=np.floor(10*np.random.random((2,2)))
输出:
array([[5.,2.],
[6.,2.]])
b=np.floor(10*np.random.random((2,2)))
输出:
array([[0.,2.],
[4.,1.]])
np.vstack((a,b))
输出:
array([[5.,2.],
[6.,2.],
[0.,2.],
[4.,1.]])
np.hstack((a,b))
输出:
array([[5.,2.,0.,2.],
[6.,2.,4.,1.]])


fromnumpyimportnewaxis
np.column_stack((a,b))
输出:
array([[5.,2.,0.,2.],
[6.,2.,4.,1.]])


a=np.array([4.,2.])
b=np.array([2.,8.])
a[:,newaxis]
输出:
array([[4.],
[2.]])
b[:,newaxis]
输出:
array([[2.],
[8.]])
np.column_stack((a[:,newaxis],b[:,newaxis]))
输出:
array([[4.,2.],
[2.,8.]])
np.vstack((a[:,newaxis],b[:,newaxis]))
输出:
array([[4.],
[2.],
[2.],
[8.]])
np.r_[1:4,0,4]
输出:
array([1,2,3,0,4])
np.c_[np.array([[1,2,3]]),0,0,0,np.array([[4,5,6]])]
输出:
array([[1,2,3,0,0,0,4,5,6]])

详细使用请查询以下函数:

hstack,vstack,column_stack,concatenate,c_,r_

7. 将较大的多维数组分割成较小的多维数组

a=np.floor(10*np.random.random((2,12)))
输出:
array([[9.,7.,9.,...,3.,2.,4.],
[5.,3.,3.,...,9.,7.,7.]])
np.hsplit(a,3)
输出:
[array([[9.,7.,9.,6.],
[5.,3.,3.,1.]]),array([[7.,2.,1.,6.],
[7.,5.,0.,2.]]),array([[9.,3.,2.,4.],
[3.,9.,7.,7.]])]
np.hsplit(a,(3,4))
输出:
[array([[9.,7.,9.],
[5.,3.,3.]]),array([[6.],
[1.]]),array([[7.,2.,1.,...,3.,2.,4.],
[7.,5.,0.,...,9.,7.,7.]])]

实现类似功能的函数包括:

hsplit,vsplit,array_split

8. 多维数组的复制操作

a=np.arange(12)
输出:
array([0,1,2,...,9,10,11])


notatall

b=a
bisa#True
b.shape=3,4
a.shape#(3L,4L)

deff(x)#,sofunctioncallsmakeno.
print(id(x))#id是python对象的唯一标识符

id(a)#111833936L
id(b)#111833936L
f(a)#111833936L


浅复制

c=a.view()
cisa#False
c.baseisa#True
c.flags.owndata#False
c.shape=2,6
a.shape#(3L,4L)
c[0,4]=1234
print(a)
输出:
array([[0,1,2,3],
[1234,5,6,7],
[8,9,10,11]])
s=a[:,1:3]
s[:]=10
print(a)
输出:
array([[0,10,10,3],
[1234,10,10,7],
[8,10,10,11]])


深复制
d=a.()
disa#False
d.baseisa#False
d[0,0]=9999
print(a)
输出:
array([[0,10,10,3],
[1234,10,10,7],
[8,10,10,11]])

numpy基本函数和方法一览

Array Creation

arange,array,,empty,empty_like,eye,fromfile,fromfunction,identity,linspace,logspace,mgrid,ogrid,ones,ones_like,r,zeros,zeros_like

Conversions

ndarray.astype,atleast_1d,atleast_2d,atleast_3d,mat

Manipulations

array_split,column_stack,concatenate,diagonal,dsplit,dstack,hsplit,hstack,ndarray.item,newaxis,ravel,repeat,reshape,resize,squeeze,swapaxes,take,transpose,vsplit,vstack

Questionsall,any,nonzero,where

Ordering

argmax,argmin,argsort,max,min,ptp,searchsorted,sort

Operations

choose,compress,cumprod,cumsum,inner,ndarray.fill,imag,prod,put,putmask,real,sum

Basic Statistics

cov,mean,std,var

Basic Linear Algebra

cross,dot,outer,linalg.svd,vdot

完整的函数和方法一览表链接:

https://docs.scipy.org/doc/numpy-dev/reference/routines.html#routines

⑧ python svd主题数怎么设定

根据你的实际需要,一般有两种需要:
第一种是通过SVD进行降维,那么SVD主题数可以设置的大一点,如50-100,因为需要使用分解后的矩阵作为词向量
另一种是进行主题分析,此时应该根据你数据集的情况预估计主题数目,大约设置10-20之间。

⑨ Python问题:from scipy import linalg出错

我也遇到了这个问题,刚开始我以为是scipy包的问题,可是重新安装了个64位的还是出错,于是我就重装了numpy,这次不用pip而是自己下了一个64位的,然后安装后就能import sklearn了 =_=,so 又是scipy的import问题可能是因为其他的相关包出问题了

阅读全文

与pythonnumpysvd相关的资料

热点内容
云服务器关机网址不见了 浏览:69
余冠英pdf 浏览:755
开发一个app上市需要什么步骤 浏览:28
phpsleep方法 浏览:430
时间同步服务器ip地址6 浏览:926
钢琴谱pdf下载 浏览:524
香港阿里云服务器怎么封udp 浏览:875
APp买海鲜到哪里 浏览:501
辽油社保app总提示更新怎么办 浏览:586
导入源码教程视频 浏览:613
天翼贷app在哪里下载 浏览:186
app开发源码查看器 浏览:516
程序员发展到了一个瓶颈 浏览:120
程序员去机房干嘛 浏览:697
英雄训练师怎么看曾经服务器 浏览:546
魔兽世界单机输入gm命令 浏览:372
51单片机最大负跳距是多少 浏览:418
android聊天控件 浏览:128
导致压缩机坏的原因 浏览:295
如何多次选取文件夹 浏览:280