import numpy as np
array = np.array([[1,2,3],[4,5,6]])
print(array)
print('====================')
print('number of dim:',array.ndim)#显示这个数组是几维数组
print('====================')
print('shape:',array.shape)#显示数组是几行几列
print('====================')
print('size:',array.size)#显示有几个元素
[[1 2 3] [4 5 6]] ==================== number of dim: 2 ==================== shape: (2, 3) ==================== size: 6
In [9]:
''' 数组可以定义数组的字节类型,numpy中使用dtype来定义, 有int32,int64,还有float32,float64,float32,查看类型 可以使用.dtype来查看 ''' import numpy as np a = np.array([1,23,4],dtype=np.int64) print(a.dtype)
int64
In [11]:
import numpy as np a= np.zeros((3,4))#生成三行四列的元素为零的矩阵 print(a)
[[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]]
In [12]:
import numpy as np a= np.ones((3,4))#生成三行四列的元素为1的矩阵 print(a)
[[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
In [15]:
import numpy as np a= np.arange(1,4)#生成1-4的一维数组 print(a)
[1 2 3]
In [19]:
import numpy as np a= np.linspace(1,10,5)#从1-10生成5个数 print(a)
[ 1. 3.25 5.5 7.75 10. ]
In [26]:
import numpy as np a= np.linspace(1,10,6).reshape((2,3))#从1-10生成6个数,重新定义为2行3列,但是前提是生成的数数刚好满足矩阵元素 print(a)
[[ 1. 2.8 4.6] [ 6.4 8.2 10. ]]
In [5]:
import numpy as np
a= np.array([10,20,30,40])#生成一位数字【10,20,30,40】
b = np.arange(4)#生成一维数组【0,1,2,3】
print(a,b)
print('====================')
print(a+b)#逐个相加
print('====================')
print(a-b)#逐个相减
print('====================')
print(a*b)#相乘
print('====================')
print(a>20)#[False False True True]
print('====================')
print(a==20)#[False True False False]
[10 20 30 40] [0 1 2 3] ==================== [10 21 32 43] ==================== [10 19 28 37] ==================== [ 0 20 60 120] ==================== [False False True True] ==================== [False True False False]
In [31]:
import numpy as np a= np.array([10,20,30,40]).reshape((2,2)) b = np.arange(4).reshape((2,2)) print(a==20)
[[False True] [False False]]
In [2]:
import numpy as np
a= np.array([10,20,30,40]).reshape((2,2))
b = np.arange(4).reshape((2,2))
print(a)
print('====================')
print(b)
print('====================')
print(a*b)#逐个相乘,0*10,1*20,2*30,3*40
c_dot = np.dot(a,b)#矩阵运算结果
c_dot2 = a.dot(b)#相当于c_dot = np.dot(a,b)
print(c_dot2)
print('====================')
print(c_dot)
[[10 20] [30 40]] ==================== [[0 1] [2 3]] ==================== [[ 0 20] [ 60 120]] [[ 40 70] [ 80 150]] ==================== [[ 40 70] [ 80 150]]
In [3]:
import numpy as np
a = np.random.random((2,3))#随机生成三行四列的随机数
print(a)
print(np.sum(a))
print('====================')
print(np.max(a))
print('====================')
print(np.min(a))
[[0.05621001 0.8422847 0.54361525] [0.93049848 0.66283586 0.5442016 ]] 3.579645897844816 ==================== 0.9304984790692439 ==================== 0.05621001007889814
In [4]:
import numpy as np
a = np.random.random((2,3))#随机生成三行四列的随机数
print(a)
print(np.sum(a,axis=1))#针对每一行
print('====================')
print(np.max(a,axis=0))#针对每一列
print('====================')
print(np.min(a,axis=1))#针对每一行
[[0.48756707 0.97080884 0.3491784 ] [0.97905997 0.61933038 0.09642127]] [1.80755432 1.69481162] ==================== [0.97905997 0.97080884 0.3491784 ] ==================== [0.3491784 0.09642127]
In [6]:
a = np.arange(2,14).reshape((3,4))
#求数组最大值最小值索引
print(np.argmin(a))
print('====================')
print(a.argmin())
print('====================')
print()
print(np.argmax(a))
print('====================')
print(a.argmax())
print()
#求数组平均值
print(np.mean(a))
print('====================')
print(a.mean())
print(np.median(a))#中位数
print('====================')
# print(a.median())失效
print(np.cumsum(a))#累加
print('====================')
print(np.diff(a))
print('====================')
print(np.nonzero(a))#非0元素位置
print('====================')
print(np.sort(a))#排序(逐行)
print('====================')
print(np.transpose(a))#转置
print('====================')
print((a.T).dot(a))
print('====================')
print(np.clip(a,3,11))#保持在3-11之间,小于3的用3替换,大于11的使用11替换
0 ==================== 0 ==================== 11 ==================== 11 7.5 ==================== 7.5 7.5 ==================== [ 2 5 9 14 20 27 35 44 54 65 77 90] ==================== [[1 1 1] [1 1 1] [1 1 1]] ==================== (array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64)) ==================== [[ 2 3 4 5] [ 6 7 8 9] [10 11 12 13]] ==================== [[ 2 6 10] [ 3 7 11] [ 4 8 12] [ 5 9 13]] ==================== [[140 158 176 194] [158 179 200 221] [176 200 224 248] [194 221 248 275]] ==================== [[ 3 3 4 5] [ 6 7 8 9] [10 11 11 11]]
In [15]:
import numpy as np
a = np.arange(0,16).reshape((2,8))
print(a)#行
print('====================')
print(a.T)#列
print('====================')
print(a.flatten())#转为一维数组
print('====================')
for i in a.flat:#转为一维数组后转置
print(i)
[[ 0 1 2 3 4 5 6 7] [ 8 9 10 11 12 13 14 15]] ==================== [[ 0 8] [ 1 9] [ 2 10] [ 3 11] [ 4 12] [ 5 13] [ 6 14] [ 7 15]] ==================== [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15] ==================== 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
In [75]:
''' 合并 ''' import numpy as np a = np.array([1,1,1]) b = np.array([2,2,2]) print(np.vstack((a,b)))#上下合并 print(np.hstack((a,b)))#左右合并
[[1 1 1] [2 2 2]] [1 1 1 2 2 2]
In [16]:
import numpy as np
a = np.array([1,1,1])[:,np.newaxis]
b = np.array([2,2,2])[:,np.newaxis]
print(a)
print('====================')
print(b)
print('====================')
c = np.concatenate((a,b,a,b),axis=1)
print(c)
[[1] [1] [1]] ==================== [[2] [2] [2]] ==================== [[1 2 1 2] [1 2 1 2] [1 2 1 2]]
In [17]:
import numpy as np
a = np.arange(16).reshape((4,4))
print(a)
print('====================')
print(np.split(a,2,axis=1))#对a进行分割,分成两块,按照列分割(等量)
print('====================')
print(np.split(a,2,axis=0))#对a进行分割,分成两块,按照行分割(等量)
print('====================')
print(np.array_split(a,3,axis=1))#对a进行分割,分成两块,按照列分割(不等量)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
====================
[array([[ 0, 1],
[ 4, 5],
[ 8, 9],
[12, 13]]), array([[ 2, 3],
[ 6, 7],
[10, 11],
[14, 15]])]
====================
[array([[0, 1, 2, 3],
[4, 5, 6, 7]]), array([[ 8, 9, 10, 11],
[12, 13, 14, 15]])]
====================
[array([[ 0, 1],
[ 4, 5],
[ 8, 9],
[12, 13]]), array([[ 2],
[ 6],
[10],
[14]]), array([[ 3],
[ 7],
[11],
[15]])]
In [18]:
import numpy as np
print('====================')
a = np.arange(16).reshape((4,4))
print('====================')
print(np.vsplit(a,2))
print('====================')
print(np.hsplit(a,2))
====================
====================
[array([[0, 1, 2, 3],
[4, 5, 6, 7]]), array([[ 8, 9, 10, 11],
[12, 13, 14, 15]])]
====================
[array([[ 0, 1],
[ 4, 5],
[ 8, 9],
[12, 13]]), array([[ 2, 3],
[ 6, 7],
[10, 11],
[14, 15]])]
In [99]:
import numpy as np a = np.array([1,2,3,4]) print(a) b=a c=b a[0]=10 print(a,b,c) #赋值语句就是浅拷贝,会随着原来的数一起改变 d=a.copy()#不会改变,属于deep_copy a[1] = 11 print(a) print(d)
[1 2 3 4] [10 2 3 4] [10 2 3 4] [10 2 3 4] [10 11 3 4] [10 2 3 4]
In [ ]:



