python numpy基础

基本类型

import numpy
#向量
vector=numpy.array([5,10,15,20])
vector==10
#矩阵
matrix=numpy.array([[5,10,15],[20,25,30],[35,40,45]])
matrix==25

类型转化

astype函数
dtype函数

vector1=numpy.array(["1","2","3"])
print(vector1.dtype)
print (vector1)
#字符转为float
vecotor1=vector1.astype(float)
print (vecotor1.dtype)
print (vecotor1)

矩阵求和

matrix=numpy.array([[5,10,15],
                    [20,25,30],
                    [35,40,45]])
print(matrix.sum(axis=1))#按行求和
print(matrix.sum(axis=0))#按列求和

数组与矩阵

arange函数
reshape函数

import numpy as np
print(np.arange(15))
a=np.arange(15).reshape(3,5)

#shape 函数返回矩阵的大小
a.shape#(3,5)
#ndim 函数返回矩阵的维度
a.ndim#2

a.size#多少个元素
a.dtype.name#类型

特殊矩阵

np.zeros((3,4))#构造全0矩阵
np.ones((2,3,4),dtype=np.int32)#全1矩阵,int 默认float

np.arange(10,30,5)#10,15,20,25(初始值,结束值,间隔)
np.random.random(2,3)#随机生成矩阵,用于初始化

from numpy import pi
np.linspace(0,2*pi,100)#(初始值,间隔,个数)

矩阵运算

#矩阵相乘
A=np.array([[1,1],[0,1]])
B=np.array([[2,0],[3,4]])
print(A*B)
print(A.dot(B))
print(np.dot(A,B))
#矩阵求逆
#需要先转化为矩阵
A=mat(A)
A.I

矩阵变形

import numpy as np
a=np.floor(10*np.random.random((3,4)))
a.ravel()#矩阵变成向量
a.reshape(6,2)#向量改变维度,array用reshape
a.T#转置

矩阵拼接与切分

a=np.floor(10*np.random.random((2,2)))
b=np.floor(10*np.random.random((2,2)))
np.vstack((a,b))#向下拼接
np.hstack((a,b))#向右拼接
#

#切分
a=np.floor(10*np.random.random((2,12)))
np.vsplit(a,2)
np.hsplit(a,3)#行方向平均切分
np.hsplit(a,(3,4))#指定3和4列后面切分
#

矩阵复制

a=np.arrange(12)
b=a
b is a#只是名字不同,换了一个名字 
b.shape=(3,4)
a.shape
#

#赋值操作,相同改变
c=a.view()
c is a 
c.shape=2,6
c[0,4]=1234
a.shape
a
#

#复制操作,不同改变
d=a.copy()
d is a 
d[0,0]=999
a
#

#只用copy才是真正意义上的复制

tile整体复制

#tile复制
a=np.arange(0,40,10)
b=np.tile(a,(4,3))#整体四行三列复制
#

排序

argsort
sort
sorted

#排序,默认为从小到大
a=np.array([[4,3,5],[1,2,1]])
b=np.sort(a,axis=1)
a.sort(axis=1)
a=np.array([4,3,1,2])
j=np.argsort(a)#返回索引
#
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章