不晓得为什么在原的py文件下不能运行了,但是换个文件夹就好了。。。。/
print(np.array([1,2,3])) #创建一维数组
print(np.array([[1,2,3,4],[1,4,5,6]])) #二维
print(np.array([[[1,2,],[4,5,]],[[7,8,],[1,4,]]])) #三维
运行结果:
D:\anaconda\python.exe D:/pythonb/图像处理/边缘检测.py
[1 2 3]
[[1 2 3 4]
[1 4 5 6]]
[[[1 2]
[4 5]]
[[7 8]
[1 4]]]
通过zeros()创建全为0的数组:
a=np.zeros((3,3))
print(a)
print(np.zeros([2,3])) #2行3列
print(np.zeros((3,4,1)))
运行结果:
D:\anaconda\python.exe D:/pythonb/图像处理/边缘检测.py
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
2行3列: [[0. 0. 0.]
[0. 0. 0.]]
3维4行1列: [[[0.]
[0.]
[0.]
[0.]]
[[0.]
[0.]
[0.]
[0.]]
[[0.]
[0.]
[0.]
[0.]]]
创建元素为1的数组:
print(np.ones([3,4]))
运行结果:
D:\anaconda\python.exe D:/pythonb/图像处理/边缘检测.py
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
在3-8之间每隔2个生成一维数组:
print(np.arange(3,9,2)) #包左不包右:3 5 7
在1-9之间生5个等差数组:
print(np.linspace(1,9,5)) #包左也包右
在101到103之间生成3个等比数组:
a = np.logspace(1,3,3)
print('a=',a)
创建随机数:
b = np.random.random((3,3))
print(b)
创建随机整数:
c = np.random.randint(9,19,(3,2))
print(c)
随机生成 3行3列 的标准正太分布:
print(np.random.randn(3,3))
运行结果:
D:\anaconda\python.exe D:/pythonb/图像处理/边缘检测.py
[3 5 7]
等差数列 [1. 3. 5. 7. 9.]
等比数列: [ 10. 100. 1000.]
随机数: [[0.25940958 0.52944639 0.51468323]
[0.24709435 0.30563451 0.06538674]
[0.54547719 0.99257664 0.06971004]]
随机整数: [[15 16]
[13 16]
[12 18]]
正太分布: [[ 0.69909865 2.31059571 0.58612419]
[ 0.73048041 1.15582373 -1.03387736]
[ 2.04943559 0.83203756 0.78287982]]
a = np.array([[[1,5,6],[1,6,6]],[[5,6,2],[2,3,8]]])
print(a)
print(a[1])
print(a.shape)
print(20*'_')
arr = np.random.randint(1,9,(4,5)) #生成4行5列元素值在1-9之间的数组
print(arr)
print(arr.shape)
运行结果:
D:\anaconda\python.exe D:/pythonb/图像处理/边缘检测.py
[[[1 5 6]
[1 6 6]]
[[5 6 2]
[2 3 8]]]
[[5 6 2]
[2 3 8]]
(2, 2, 3)
[[1 7 8 6 4]
[2 3 5 6 1]
[2 2 7 1 2]
[2 7 4 4 7]]
(4, 5)
法一:
arr = np.random.randint(1,9,(4,5)) #4行5列
print(arr)
arr.shape = (5,4) #修改后:5行4列
print(arr)
arr.shape = (2,-1) #修改后:2行x列
print(arr.shape)
print(arr)
法二:
arr = np.random.randint(1,9,(4,5))
arr1 = arr.reshape(5,4)
print(arr1)
print(arr.reshape(2,10))
运行结果:
[[1 1 7 7 6]
[3 2 2 3 7]
[2 3 3 8 1]
[7 8 4 3 4]]
5行4列: [[1 1 7 7]
[6 3 2 2]
[3 7 2 3]
[3 8 1 7]
[8 4 3 4]]
2行x列: (2, 10)
[[1 1 7 7 6 3 2 2 3 7]
[2 3 3 8 1 7 8 4 3 4]]
[[8 1 8 2]
[1 2 3 5]
[5 2 2 8]
[1 3 8 4]
[1 7 4 8]]
[[8 1 8 2 1 2 3 5 5 2]
[2 8 1 3 8 4 1 7 4 8]]
import numpy as np
arr = np.arange(1,10,3)
print(arr)
print(arr+2)
print(arr*2)
print(20*'_')
a= np.array([[1,2,2],[3,4,3],[1,4,5]])
b= np.array([[1,2,2],[1,4,5],[2,3,2]])
print(a+b)
print(a*b) #相同位置对应相乘
print(np.dot(a,b)) #矩阵形式相乘,第一个数组的列数需和第二个数组的行数相等
c = np.ones([3,2])
print(np.dot(a,c))
print('数据类型:',c.dtype)
运行结果:
D:\anaconda\python.exe D:/pythonb/图像处理/边缘检测.py
[1 4 7]
[3 6 9]
[ 2 8 14]
[[2 4 4]
[4 8 8]
[3 7 7]]
[[ 1 4 4]
[ 3 16 15]
[ 2 12 10]]
[[ 7 16 16]
[13 31 32]
[15 33 32]]
[[ 5. 5.]
[10. 10.]
[10. 10.]]
数据类型: float64
arr1 = np.random.randint(1,20,[2,2,3])
print(arr1)
print(arr1[1,0,2]) #三维中
print(20*'_')
arr2 =np.array([[2,1,3],[4,5,6],[5,6,8]])
print (arr2)
print(arr2[:,2]) #取第3列
print(20*'_')
arr3 = np.array([[[1,2,3,4],[4,5,6,2],[5,5,6,2]],[[1,5,6,8],[5,8,9,6],[4,5,6,2]]])
print(arr3)
print(arr3[ :, 0, 0]) #每个里第一行的第一个
print(arr3[0,:,0]) #第一个里面的第一列
print(arr3[1:,2,]) #第二个里面的第三行
运行结果:
D:\anaconda\python.exe D:/pythonb/图像处理/边缘检测.py
[[[ 4 1 9]
[10 19 18]]
[[ 9 13 10]
[16 15 16]]]
10
[[2 1 3]
[4 5 6]
[5 6 8]]
[3 6 8]
[[[1 2 3 4]
[4 5 6 2]
[5 5 6 2]]
[[1 5 6 8]
[5 8 9 6]
[4 5 6 2]]]
[1 1]
[1 4 5]
[[4 5 6 2]]
(by dxz 2020 04 15 20:55)