数据处理-numpy学习

#-*- coding:utf-8 -*-
#author : zhangwei

import numpy as np

# a = np.array([[1,2,3],[2,3,4]])
# print a.shape #打印矩阵的形状,行数、列数
# print a.ndim  #打印矩阵的维度
# print a.size  #打印矩阵的总数

# a = np.array([10,20,30,40])
# b = np.arange(4)
#
# #c = 10*np.sin(a) #可以是sin,cos,tanh
# print b == 3      #返回bool

# a = np.array([[1,1] , [0,1]])
# b = np.arange(4).reshape([2,2])#采用reshape进行格式转换
# c = a * b                      #逐个相乘
# c_dot = np.dot(a , b)          #矩阵相乘
# c_dot_2 = a.dot(b)             #矩阵的第二种运算形式
# print c
# print c_dot_2

# a = np.random.random([2,4])#随机生成的0~1随机数字;
# print a
# print np.max(a ,axis=0)    #求矩阵的最大最小值以及求和;
# print np.min(a , axis=1)   #axis=0代表是列操作,axis=1代表的是行操作;
# print np.sum(a , axis=1)

# A = np.arange(14,2 , -1).reshape(3,4)
# print A
# print np.argmin(A)           #求矩阵的最小值额索引
# print np.argmax(A)
# print np.mean(A)             #求矩阵额平均值
# print np.average(A)          #求矩阵的平均值
# print np.median(A)           #求矩阵额中位数
# print np.cumsum(A)           #逐步的累加
# print np.diff(A)             #每两步的累差
# print np.nonzero(A)          #输出行数和列数
# print np.sort(A)             #逐行进行排序
# print np.transpose(A) , A.T  #矩阵额转置
# print A.T.dot(A)             #矩阵转置再进行矩阵额乘法
# print np.clip(A , 5 , 9)     #找出5~9之间的数,小于5的值变为5,大于9的数变为9,之间额值保持不变
# print np.mean(A , axis=1)    #求均值指定行、列

# A = np.arange(3,15)
# print A
# print A[3]      #矩阵A的第三个值
# B = np.arange(3,15).reshape([3,4])
# print B
# print B[1]        #索引矩阵行里面额结果
# print B[1][1]     #索引第一行第一列的值
# print B[1,1]      #索引第一行第一列的值
# print B[2,:]      #索引第二行所有的数
# print B[: , 1]    #索引第一列的所有的数
# print B[1 , 1:3]  #索引第一行1~3列的值,右开
# for raw in B:     #用for循环打印出行值,没法进行列输出
#     print raw
# for column in B.T:  #采用转置输出列
#     print column
# print B.flat        #将矩阵进行转为一行,但是输出值是一个迭代器,并不能输出结果
# print B.flatten()   #将矩阵的值输出为一行的值
# for item in B.flatten():
#     print item

# A = np.array([1,1,1])[:,np.newaxis]
# B = np.array([2,2,2])[:,np.newaxis]
# # C = np.vstack((A,B,A))
# # print np.vstack((A,B))   #进行上下的合并,vertical stack,可以尽心多行合并
# # print A.shape
# # print C.shape
# # D = np.hstack((A , B))   #左右合并,horizontal stack
# # print D.shape
# # print A.T.shape          #无法采用T将序列变为一个列向量,形状仍然没有改变
# # print A[np.newaxis,:]    #在行上加一个维度
# # print A[:,np.newaxis]    #在列上加一个维度
# # E = np.vstack((A[:,np.newaxis] , B[:,np.newaxis]))  #两种方法将矩阵合并为纵向的一维矩阵
# # print D[:,np.newaxis]    #两种方法将矩阵合并为纵向的一维矩阵
# C = np.concatenate((A,B,A,B) , axis=1) #0列方向进行合并,行方向进行合并,
# print C

# A = np.arange(12).reshape([3,4])
# print A
# print np.split(A , 4 , axis=-1)      #将数组进行切分,注意切分的大小要合适,必须是等量分割;
# print np.array_split(A , 2 , axis=0) #不等量分割,把多余的数组转到第一个数组;
# print np.vsplit(A, 3)                #纵向分割为三块,必须是等量分块
# print np.hsplit(A , 2)               #水平方向分割为两块

# a = np.arange(4)
# b = a                          #浅拷贝
# c = a
# d = b
# a[0] = 11
# print a , b , c , d
# print b is a                   #判断a和b是否完全相等
# d[1:3] = [22,33]               #浅拷贝各部分数组是关联的
# b = a.copy()                   #深拷贝,数组之间是不关联额
# a[3] = 44
# print a , b                    #a的改变不会导致b的改变

学习文献:https://morvanzhou.github.io/about/

猜你喜欢

转载自blog.csdn.net/Xwei1226/article/details/80536961