numpy.array(object,dtype=None,copy=True,order='K',subok=False,ndmin=0)
list = [1, 2, 3] #列表
# 创建浮点型数组
n1 = np.array(list,dtype=np.float_)
#或者
n1= np.array(list,dtype=float)
print(n1)
print(n1.dtype)
print(type(n1[0]))
[1. 2. 3.]
float64
<class 'numpy.float64'>
import numpy as np #导入numpy模块
n1 = np.array([1,2,3]) #创建数组
n2 = np.array(n1,copy=True) #复制数组
n2[0]=3 #修改数组中的第一个元素为3
n2[2]=1 #修改数组中的第三个元素为1
print(n1)
print(n2)
[1 2 3]
[3 2 1]
import numpy as np
nd1 = [1, 2, 3]
nd2 = np.array(nd1, ndmin=3) #三维数组
print(nd2)
[[[1 2 3]]]
import numpy as np
n = np.empty([2,3])
#z指定数据类型
#n = np.empty([2,3],dtype=int)
print(n)
[[0. 0.15 0.25]
[0.5 0.75 1. ]]
import numpy as np
n = np.zeros(3)
print(n)
[0. 0. 0.]
import numpy as np
n = np.ones(3)
print(n)
[1. 1. 1.]
import numpy as np
n = np.full((3,3), 8)
print(n)
[[8 8 8]
[8 8 8]
[8 8 8]]
arrange([start,]stop[,step,],dtype=None)
import numpy as np
n=np.arange(1,12,2)
print(n)
print(type(n))
[ 1 3 5 7 9 11]
<class 'numpy.ndarray'>
linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)
import numpy as np
n1 = np.linspace(7500,10000,6)
n2 = np.linspace(7500,10000,6,endpoint=False)
print(n1)
print(n2)
[ 7500. 8000. 8500. 9000. 9500. 10000.]
[7500. 7916.66666667 8333.33333333 8750. 9166.66666667
9583.33333333]
numpy.logspace(start,stop,num=50,endpoint=True,base=10.0,dtype=None)
import numpy as np
#np.set_printoptions(threshold=np.inf)
#输出时打印不换行
np.set_printoptions(linewidth=800)
n = np.logspace(0,63,64,base=2,dtype='int')
# n = np.logspace(0,63,64,base=2,dtype='uint64')
#数组重塑8*8矩阵
print(n.reshape(8,8))
n = np.logspace(0,63,64,base=2,dtype='uint64')
numpy.random.rand(d0,d1,d3,...,dn)
import numpy as np
n=np.random.rand(5)
print('随机生成0到1之间的一维数组:')
print(n)
n1=np.random.rand(2,5)
print('随机生成0到1之间的二维数组:')
print(n1)
随机生成0到1之间的一维数组:
[0.57869697 0.30188547 0.04030546 0.37590232 0.5425468 ]
随机生成0到1之间的二维数组:
[[0.56763724 0.20653114 0.54976305 0.39781119 0.44532154]
[0.60105384 0.24886826 0.0015031 0.98488654 0.84708016]]
numpy.random.randn(d0,d1,d2,d3,...,dn)
import numpy as np
n1=np.random.randn(5)
print('随机生成满足正态分布的一维数组:')
print(n1)
n2=np.random.randn(2,5)
print('随机生成满足正态分布的二维数组:')
print(n2)
随机生成满足正态分布的一维数组:
[-0.15211938 -1.03296299 1.06316179 -1.20923116 -0.55668442]
随机生成满足正态分布的二维数组:
[[ 1.01095022 -0.81314119 -0.45575704 1.00291623 0.57037931]
[-0.06936064 1.8009533 0.47733942 -0.02751161 0.65386916]]
numpy.random.randint(low,high=None,size=None)
import numpy as np
n1=np.random.randint(1,3,10)
print('随机生成10个1到3之间且不包括3的整数:')
print(n1)
n2=np.random.randint(5,10)
print('size数组大小为空随机返回一个整数:')
print(n2)
n3=np.random.randint(5,size=(2,5))
print('随机生成5以内二维数组')
print(n3)
随机生成10个1到3之间且不包括3的整数:
[2 2 1 1 1 1 1 2 1 1]
size数组大小为空随机返回一个整数:
9
随机生成5以内二维数组
[[0 3 3 1 2]
[0 2 2 0 1]]
numpy.random.normal(loc,scale,size)
import numpy as np
n = np.random.normal(0, 0.1, 10)
print(n)
[ 0.14080234 -0.20499852 0.03279486 0.06500545 -0.18000514 0.01893719
0.27595117 -0.10378904 0.18286385 0.03277625]
numpy.asarray(a,dtype=None,order=None)
import numpy as np #导入numpy模块
n1 = np.asarray([1,2,3]) #通过列表创建数组
n2 = np.asarray([(1,1),(1,2)]) #通过列表的元组创建数组
n3 = np.asarray((1,2,3)) #通过元组创建数组
n4= np.asarray(((1,1),(1,2),(1,3))) #通过元组的元组创建数组
n5 = np.asarray(([1,1],[1,2])) #通过元组的列表创建数组
print(n1)
print(n2)
print(n3)
print(n4)
print(n5)
[1 2 3]
[[1 1]
[1 2]]
[1 2 3]
[[1 1]
[1 2]
[1 3]]
[[1 1]
[1 2]]
numpy.frombuffer(buffer,dtype=float,count=-1,offset=0)
import numpy as np
n=np.frombuffer(b'mingrisoft',dtype='S1')
print(n)
[b'm' b'i' b'n' b'g' b'r' b'i' b's' b'o' b'f' b't']
numpy.fromiter(iterable,dtype,count=1)
import numpy as np
iterable = (x * 2 for x in range(5)) #遍历0~5并乘以2,返回可迭代对象
n = np.fromiter(iterable, dtype='int') #通过可迭代对象创建数组
print(n)
[0 2 4 6 8]
numpy.empty_like(prototype,dtype=None,order='k',subok=True)
import numpy as np
n = np.empty_like([[1, 2], [3, 4]])
print(n)
[[ 793213571 -262225594]
[-1944896189 -1117814368]]
import numpy as np
n = np.zeros_like([[0.1,0.2,0.3], [0.4,0.5,0.6]])
print(n)
[[0. 0. 0.]
[0. 0. 0.]]
import numpy as np
n = np.ones_like([[0.1,0.2,0.3], [0.4,0.5,0.6]])
print(n)
[[1. 1. 1.]
[1. 1. 1.]]
numpy.full_like(a,fill_value,dtype=None,order='K',subok=True)
import numpy as np
a = np.arange(6) #创建一个数组
n1 = np.full_like(a, 1) #创建一个与数组a维度和数据类型相同的数组,以1填充
n2 = np.full_like(a,0.2) #创建一个与数组a维度和数据类型相同的数组,以0.2填充
#创建一个与数组a维度和数据类型相同的数组,以0.2填充,浮点型
n3 = np.full_like(a, 0.2, dtype='float')
print(n1)
print(n2)
print(n3)
[1 1 1 1 1 1]
[0 0 0 0 0 0]
[0.2 0.2 0.2 0.2 0.2 0.2]
a = np.arange(8,dtype=float)
a
import numpy as np
n1=np.array([1,2]) #创建一维数组
n2=np.array([3,4])
print(n1-n2) #减法运算
print(n1*n2) #乘法运算
print(n1/n2) #除法运算
[-2 -2]
[3 8]
[0.33333333 0.5 ]
import numpy as np
n1=np.array([1,2]) #创建一维数组
n2=np.array([3,4])
print(n1**n2) #幂运算
[ 1 16]
import numpy as np
n1=np.array([1,2]) #创建一维数组
n2=np.array([3,4])
print(n1>=n2) #大于等于
print(n1==n2) #等于
print(n1<=n2) #小于等于
print(n1!=n2) #不等于
[False False]
[False False]
[ True True]
[ True True]
import numpy as np
n1 = np.linspace(7500,10000,6,dtype='int') #创建等差数列数组
print(n1)
print(n1/1000) #米转换为公里
[ 7500 8000 8500 9000 9500 10000]
[ 7.5 8. 8.5 9. 9.5 10. ]
import numpy as np
n1=np.array([1,2,3]) #创建一维数组
print(n1[0])
n1=np.array([[1,2,3],[4,5,6]]) #创建二维数组
print(n1[1][2])
1
6
[start:stop:step]
import numpy as np
n1=np.array([1,2,3]) #创建一维数组
print(n1[0])
print(n1[1])
print(n1[0:2])
print(n1[1:])
print(n1[:2])
1
2
[1 2]
[2 3]
[1 2]
import numpy as np
n = np.arange(10) #使用arange函数创建一维数组
print(n)
print(n[:3]) # 0 1 2
print(n[3:6]) # 3 4 5
print(n[6:]) # 6 7 8 9
print(n[::]) # 0 1 2 3 4 5 6 7 8 9
print(n[:]) # 0 1 2 3 4 5 6 7 8 9
print(n[::2]) # 0 2 4 6 8
print(n[1::5]) # 1 6
print(n[2::6]) # 2 8
#start、stop、step为负数时
print(n[::-1]) # 9 8 7 6 5 4 3 2 1 0
print(n[:-3:-1]) # 9 8
print(n[-3:-5:-1]) # 7 6
print(n[-5::-1]) # 5 4 3 2 1 0
import numpy as np
#创建3行4列的二维数组
n=np.array([[0,1,2,3],[4,5,6,7],[8,9,10,11]])
print(n)
print(n[1])
print(n[1,2])
print(n[-1])
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[4 5 6 7]
6
[ 8 9 10 11]
import numpy as np
#创建3行3列的二维数组
n=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(n[:2,1:])
print(n[1,:2])
print(n[:2,2])
print(n[:,:1])
[[2 3]
[5 6]]
[4 5]
[3 6]
[[1]
[4]
[7]]
import numpy as np
n=np.arange(6) #创建一维数组
print(n)
n1=n.reshape(2,3) #将数组重塑为2行3列的二维数组
print(n1)
n=np.array(['床','前','明','月','光','疑','是','地','上','霜','举','头','望','明','月','低','头','思','故','乡'])
n1=n.reshape(4,5)
print(n1)
[0 1 2 3 4 5]
[[0 1 2]
[3 4 5]]
[['床' '前' '明' '月' '光']
['疑' '是' '地' '上' '霜']
['举' '头' '望' '明' '月']
['低' '头' '思' '故' '乡']]
import numpy as np
n=np.array([[0,1,2],[3,4,5]]) #创建二维数组
print(n)
n1=n.reshape(3,2) #将数组重塑为3行2列的二维数组
print(n1)
[[0 1 2]
[3 4 5]]
[[0 1]
[2 3]
[4 5]]
import numpy as np
n = np.arange(24).reshape(4,6) #创建4行6列的二维数组
print(n)
print(n.T) #T属性行列转置
[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]
[12 13 14 15 16 17]
[18 19 20 21 22 23]]
[[ 0 6 12 18]
[ 1 7 13 19]
[ 2 8 14 20]
[ 3 9 15 21]
[ 4 10 16 22]
import numpy as np
n = np.array([['A',100],['B',200],['C',300],['D',400],['E',500]])
print(n)
print(n.T) #T属性行列转置
print(n.transpose()) #transpose()函数行列转置
[['A' '100']
['B' '200']
['C' '300']
['D' '400']
['E' '500']]
[['A' 'B' 'C' 'D' 'E']
['100' '200' '300' '400' '500']]
[['A' 'B' 'C' 'D' 'E']
['100' '200' '300' '400' '500']]
import numpy as np
#创建二维数组
n1=np.array([[1,2],[3,4],[5,6]])
n2=np.array([[10,20],[30,40],[50,60]])
print(np.hstack((n1,n2))) #水平方向增加数据
print(np.vstack((n1,n2))) #垂直方向增加数据
[[ 1 2 10 20]
[ 3 4 30 40]
[ 5 6 50 60]]
[[ 1 2]
[ 3 4]
[ 5 6]
[10 20]
[30 40]
[50 60]]
import numpy as np
#创建二维数组
n1=np.array([[1,2],[3,4],[5,6]])
print(n1)
n2=np.delete(n1,2,axis=0) #删除第3行
n3=np.delete(n1,0,axis=1) #删除第1列
n4=np.delete(n1,(1,2),0) #删除第2行和第3行
print('删除第3行后的数组:','\n',n2)
print('删除第1列后的数组:','\n',n3)
print('删除第2行和第3行后的数组:','\n',n4)
[[1 2]
[3 4]
[5 6]]
删除第3行后的数组:
[[1 2]
[3 4]]
删除第1列后的数组:
[[2]
[4]
[6]]
删除第2行和第3行后的数组:
[[1 2]]
import numpy as np
#创建二维数组
n1=np.array([[1,2],[3,4],[5,6]])
print(n1)
n1[1]=[30,40] #修改第2行数组[3,4]为[30,40]
n1[2][1]=88 #修改第3行第3个元素6为88
print('修改后的数组:','\n',n1)
[[1 2]
[3 4]
[5 6]]
修改后的数组:
[[ 1 2]
[30 40]
[ 5 88]]
numpy.where(condition,x,y)
import numpy as np
n1 = np.arange(10) #创建一个一维数组
print(n1)
print(np.where(n1>5,2,0)) #大于5输出2,不大于5输出0
n2=n1[np.where(n1>5)]
print(n2)
[0 1 2 3 4 5 6 7 8 9]
[0 0 0 0 0 0 2 2 2 2]
[6 7 8 9]
import numpy as np
a = np.mat('5 6;7 8')
b = np.mat([[1, 2], [3, 4]])
print(a)
print(b)
print(type(a))
print(type(b))
n1 = np.array([[1, 2], [3, 4]])
print(n1)
print(type(n1))
[[5 6]
[7 8]]
[[1 2]
[3 4]]
<class 'numpy.matrix'>
<class 'numpy.matrix'>
[[1 2]
[3 4]]
<class 'numpy.ndarray'>
import numpy as np
# 创建一个3*3的零矩阵
data1 = np.mat(np.zeros((3,3)))
print('3*3的零矩阵:')
print(data1)
# 创建一个2*4的1矩阵
data1 = np.mat(np.ones((2,4)))
print('2*4的1矩阵:')
print(data1)
#使用rand()函数创建一个3*3在0~1之间随机产生的二维数组
data1 = np.mat(np.random.rand(3,3))
print('3*3在0~1之间随机产生的二维数组:')
print(data1)
#创建一个1~8之间的随机整数矩阵
data1 = np.mat(np.random.randint(1,8,size=(3,5)))
print('1~8之间的随机整数矩阵:')
print(data1)
#创建对角矩阵
print('对角矩阵:')
data1 = np.mat(np.eye(2,2,dtype=int)) #2*2对角矩阵
print(data1)
data1 = np.mat(np.eye(4,4,dtype=int)) #4*4对角矩阵
print(data1)
#创建对角线矩阵
print('对角线矩阵:')
a = [1,2,3]
data1 = np.mat(np.diag(a)) #对角线1、2、3矩阵
print(data1)
b = [4,5,6]
data1 = np.mat(np.diag(b)) #对角线4、5、6矩阵
print(data1)
3*3的零矩阵:
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
2*4的1矩阵:
[[1. 1. 1. 1.]
[1. 1. 1. 1.]]
3*3在0~1之间随机产生的二维数组:
[[0.0399538 0.45666733 0.63364134]
[0.03244868 0.63405799 0.00862924]
[0.21770499 0.95343874 0.93665855]]
1~8之间的随机整数矩阵:
[[6 1 7 7 7]
[1 4 4 7 6]
[3 7 7 4 1]]
对角矩阵:
[[1 0]
[0 1]]
[[1 0 0 0]
[0 1 0 0]
[0 0 1 0]
[0 0 0 1]]
对角线矩阵:
[[1 0 0]
[0 2 0]
[0 0 3]]
[[4 0 0]
[0 5 0]
[0 0 6]]
mat()函数只适用于二维矩阵,维数超过2以后,mat()函数就不适用了,从这一点来看array()函数更具通用性。
import numpy as np
#创建矩阵
data1= np.mat([[1, 2], [3, 4],[5,6]])
data2=np.mat([1,2])
print(data1+data2) #矩阵加法运算
[[2 4]
[4 6]
[6 8]]
import numpy as np
#创建矩阵
data1= np.mat([[1, 2], [3, 4],[5,6]])
data2=np.mat([1,2])
print(data1-data2) #矩阵减法法运算
print(data1/data2) #矩阵除法运算
[[0 0]
[2 2]
[4 4]]
[[1. 1.]
[3. 2.]
[5. 3.]]
import numpy as np
#创建矩阵
data1= np.mat([[1, 2], [3, 4],[5,6]])
data2=np.mat([[1,2],[3,4]])
print(data1*data2) #矩阵乘法运算
[[ 7 10]
[15 22]
[23 34]]
import numpy as np
#创建数组
n1 = np.array([1, 2, 3])
n2= np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
print('数组相乘结果为:','\n', n1*n2) #数组相乘
print('数组点乘结果为:','\n', np.dot(n1, n2)) #数组点乘
print(np.multiply(n1,n2))
数组相乘结果为:
[[1 4 9]
[1 4 9]
[1 4 9]]
数组点乘结果为:
[ 6 12 18]
[[1 4 9]
[1 4 9]
[1 4 9]]
import numpy as np
n1 = np.mat('1 3 3;4 5 6;7 12 9') # #创建矩阵,使用分号隔开数据
n2 = np.mat('2 6 6;8 10 12;14 24 18')
print('矩阵相乘结果为:\n',n1*n2) #矩阵相乘
print('矩阵对应元素相乘结果为:\n',np.multiply(n1,n2))
矩阵相乘结果为:
[[ 68 108 96]
[132 218 192]
[236 378 348]]
矩阵对应元素相乘结果为:
[[ 2 18 18]
[ 32 50 72]
[ 98 288 162]]
import numpy as np
n1 = np.mat('1 3 3;4 5 6;7 12 9') # #创建矩阵,使用分号隔开数据
print('矩阵转置结果为:\n',n1.T) #矩阵转置
矩阵转置结果为:
[[ 1 4 7]
[ 3 5 12]
[ 3 6 9]]
import numpy as np
n1 = np.mat('1 3 3;4 5 6;7 12 9') # #创建矩阵,使用分号隔开数据
print('矩阵的逆矩阵结果为:\n',n1.I) #逆矩阵
矩阵的逆矩阵结果为:
[[-0.9 0.3 0.1 ]
[ 0.2 -0.4 0.2 ]
[ 0.43333333 0.3 -0.23333333]]