1.读取文件
numpy.genfromtxt("*.txt",delimiter=',',dtype=str)-["文件位置“,“分隔符”,“读取类型”]
print(help(numpy.genfromtxt)) 类似Matlab的Help查询功能;
2.创建向量和数组
vector=numpy.array([1,2,3,4])
print(vector.shape)
matrix=numpy.array([5,10,15],[20,25,30])
print(matrix.shape)
3.numpy.array里的东西必须是同一类型;
numbers=numpy.array([1,2,3,4])
numbers.dtype,获取此array的类型;
dtype('int32')
numbers=numpy.array([1,2,3,4.0])
dtype('float64')
4. (1) 获取矩阵中的某一列
matrix=numpy.array([[5,10,15],[20,25,30],[35,40,45]])
print(matrix[:,1])
Out: [10 25 40]
(2)获取矩阵中的某两列
print(matrix[:,0:2])
([5 10] [20 25] [35 40])
5. 判断array里有没有某个数
(1) vector=numpy.array([1,2,3,4])
vector==2
Out: array([False,True,False,False],dtype=bool)
(2)判断出来的Bool类型当成索引;
例子1:(接上)equal_to_two=(vector==2)
print(vector[equal_to_two])
Out: [2]
例子2:matrix=numpy.array([5,10,15],[20,25,30],[35,40,45])
second_column_25=(matrix[:,1]==25)
print second_column_25
print(matrix[second_column_25,;]) 找出含有25索引的那一行;
6.逻辑语法
与的操作:&
或的操作:|
7.array类型变换
vector=numpy.array(["1","2","3"])
print vector.dtype
print vector
vector=vector.astypr(float)
print (vector.dtype)
print(vector)
st
['1','2','3']
float64
[1,2,3]
8.求Vector的最小值
vector.min()
matrix.sum(axis=1)
Out: arry([30,75,120])
axis=1 维度为每一行相加
axis=0 维度为每一列相加 matrix.sum(axis=0)
9. numpy.arrange(15)--创造出15个元素的数组
[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]
np.arrange(15).reshape(3,5) 三行五列;
a.shape 显示矩阵行列格式;
a.ndim 矩阵维度 二维;
a.dtype.name 'int32';
a.size 矩阵的元素个数;
np.zeros((3,4)) 初始化一个空矩阵
np.ones((2,3,4),dtype=np.int32) 创建一个全为1的矩阵,类型为int;
np.arrange(10,30,5) 等差数列,<30;
np.random.random((2,3)) 随机数矩阵(-1,1)
np.linspace(0,2*pi,100) 取100个数,间隔相同;
矩阵的相加减;
numbers=numpy.array([1,2,3,4])
print(a<3) [true,true,false,false]
矩阵的乘法:A.dot(B)或 np.dot(A,B)
矩阵每个位置的数值相乘:A*B
B=np.arrange(3)
print(np.exp(B))
np.sqrt(B)
np.floor 向下取整;a=np.floor(10*np.random.random((3,4)))
a.ravel() 把矩阵变成向量;
a.T 矩阵的转置
a.reshape(3,-1) 指定一个维度,另外一个可以出来,-1代表默认,让程序自动计算;
np.hstack(a,b) 拼接矩阵 h 代表横着拼;np.vstack(a,b) v代表竖着拼;
np.hsplit(a,3) 按行切分成3份 (2,12)切成(2,4)vsplit:竖着切;
np.hsplit(a,(3,4)) 指定位置切分;指定第三行和第4行;
10. a=b 直接等号赋值,a,b指向内存位置一样;print(id(a))
c=a.view() c[0,4]=1234; a,b虽然指向不同东西,不同东西共用一套值;浅赋值;
d=a.copy() a,b之间没关系;深赋值;
11. 挑最大
data=np.sin(np.arange(20)).reshape(5,4)
ind=data.argmax(axis=0) 按列中最大数的索引;
print(ind) 按照索引值去找这个值
data_max=data[ind,range(data.shape[1])]
print(data_max)
12. b=np.tile(a,(3,5)) 行3倍,列5倍;
b=np.sort(a,axis=1)
j=np.argsort(a) 求出最小值的索引;a[j] 按从小到大排序;