numpy tips

来源:互联网 发布:国家旅游局数据 编辑:程序博客网 时间:2024/05/18 13:08
import numpy as np

array = np.array([[1,2,3],[2,3,4]]) #列表转化为矩阵
print(array)

print('number of dim:',array.ndim) #打印维度

print('shape:',array.shape) #行数和列数

print('size:',array.size) #元素个数

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

##array:创建数组
##dtype:指定数据类型
##zeros:创建数据全为0
##ones:创建数据全为1
##empty:创建数据接近0
##arange:按指定范围创建数据
##linspace:创建线段

import numpy as np

a = np.array([2,23,4])#一维矩阵
print(a)

a = np.array([2,23,4],dtype=np.int)#数据类型,默认为64
print(a.dtype)

a = np.array([2,23,4],dtype = np.int32)
print(a.dtype)

a = np.array([2,23,4],dtype = np.float)
print(a.dtype)

a = np.array([2,23,4],dtype = np.float32)
print(a.dtype)

a = np.array([[2,23,4],[2,32,4]])
print(a)

a = np.zeros((3,4))#全0矩阵
print(a)

a = np.ones((3,4),dtype = np.int)#全1矩阵
print(a)

a = np.empty((3,4)) #数据为empty,每个值都是接近于0的数
print(a)

a = np.arange(10,20,2) #10-19的数据,步长为2,创建一维矩阵
print(a)

a = np.arange(12).reshape((3,4))#3行4列矩阵,赋值0到11,按行赋值
print(a)

a = np.linspace(1,10,20)#开始端为1,结束端为10,分割成20个数据,生成线段,一维矩阵
print(a)

a = np.linspace(1,10,20).reshape((5,4))#5行4列矩阵,数据按行赋值,生成方式如上
print(a)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
import numpy as np
a = np.array([10,20,30,40]) #array([10,20,30,40])
b = np.arange(4) #array([0,1,2,3])

print(a,b) #输出矩阵a和b

c = a-b #矩阵减法

print(c) #输出矩阵c

c = a+b #矩阵加法

c = a*b #矩阵乘法,对应元素相乘,array([0,20,60,120])

c = b**2 #array([0,1,4,9]),b元素的平方**

c = 10*np.sin(a) #cos(a),tan(a)

print(b<3) #array([True,True,True,False],dtype = bool)

a = np.array([[1,1],[0,1]])
b = np.arange(4).reshape((2,2))
print(a)
print(b)
c_dot = np.dot(a,b) #标准的矩阵乘法
c_dot_2 = a.dot(b)#两种表示法等价

a = np.random.random((2,4))
print(a)
#利用0到1之间的随机数生成一个2行4列的矩阵
print(np.sum(a))#对矩阵中的元素求和
print(np.min(a))#寻找最小值
print(np.max(a))#寻找最大值

print('a=',a)
print('sum=',np.sum(a,axis=1)) #计算每行的和,返回一行两列的矩阵
print('min=',np.min(a,axis=0)) #在每列中查找最小的元素,返回一行4列的矩阵
print('max=',np.max(a,axis=1)) #在每行中查找最大的元素,返回一行两列的矩阵
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
import numpy as np
A = np.arange(2,14).reshape((3,4))

##array([[2,3,4,5]
##       [6,7,8,9]
##       [10,11,12,13]])

print(np.argmin(A)) #索引0
print(np.argmax(A)) #索引11

print(np.mean(A)) #整个矩阵的均值7.5
print(np.average(A)) #7.5
print(A.mean()) #7.5

print(np.median(A)) #求解中位数7.5

print(np.cumsum(A)) #累加函数[2 5 9 14 20 27 35 44 54 65 77 90]

print(np.diff(A)) #累差运算,每一行中后一项和前一项之差,得到3行3列的矩阵

print(np.nonzero(A))
#将所有的非零元素的行和列坐标分割开,重构成两个分别关于行标和列标的矩阵

A = np.arange(14,2,-1).reshape((3,4))# 14到3,步长为-1

print(np.sort(A)) #对每行进行从小到大的排序

print(np.transpose(A)) #矩阵的转置
print(A.T)#矩阵的转置
print((A.T).dot(A))

print(A)
print(np.clip(A,5,9)) #clip(Array,Array_min,Array_max),在矩阵A中查找比最小值
#小的元素或者比最大值大的元素,并且将这些元素转换为最小值或最大值

print(np.mean(A,axis = 0)) #计算每列的平均值
print(np.mean(A,axis = 1)) #计算每行的平均值

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

import numpy as np
a = np.arange(4)
#array([0,1,2,3])
b = a
c = a
d = b
#改变a的值,b、c、d的值也会改变

a[0] = 11
print(a)
#array([11,1,2,3])

b is a #True
c is a #True
d is a #True

d[1:3] = [22,33] #同样改变d的值,a、b、c的值也会改变,说明
# numpy中=的赋值方式具有关联性
# array([11,22,33,3])
print(a)#array([11,22,33,3])
print(b)#array([11,22,33,3])
print(c)#array([11,22,33,3])