第一题
查看Numpy的版本号
- 代码
import numpy as np
print(np.__version__)
- 运行结果
第二题
如何创建一个所有值都是False的布尔类型的数组
- 代码
import numpy as np
arr1 = np.full((3, 4), False)
print(arr1)
print(arr1.dtype)
- 运行结果:产生了一个3行4列全为False的布尔类型数组
第三题
将一个有10个数的一维数组的形状进行转换
- 代码
import numpy as np
arr2 = np.random.randint(1,100,size=(10,))
print(arr2)
print(arr2.reshape(2,5))
- 运行结果
第四题
将数组中所有偶数都替换成0(改变原来数组和不改变原来数组两种方式实现)
1.不改变原来数组
- 代码
import numpy as np
np.random.seed(1)
arr3 = np.random.randint(0,20,size=(4,5))
print(arr3)
arr4 = arr3.copy()
arr4[arr4 % 2 == 0] = 0
print(arr4)
print(arr3)
- 运行结果:使用深拷贝,不改变原数组
2.改变原来数组
- 代码
import numpy as np
np.random.seed(1)
arr3 = np.random.randint(0,20,size=(4,5))
print(arr3)
arr5 = arr3
arr5[arr5 % 2 == 0] = 0
print(arr5)
print(arr3)
- 运行结果:使用赋值,改变原数组
第五题
创建一个一维且有10个数的数组,元素是从0-1之间,但是不包含0和1:
- 代码
import numpy as np
arr6 = np.linspace(0,1,12)[1:-1]
print(arr6)
- 运行结果:生成了0-1之间均匀分布的数,但是不包含0和1。
第六题
求以下数组大于等于5并且小于等于10的数组:
- 代码
import numpy as np
np.random.seed(3)
arr7 = np.random.randint(0,20,size=(4,5))
print(arr7)
print(arr7[(arr7>=5) & (arr7<=10)])
- 运行结果
第七题
将一个二维数组的行和列分别进行逆向
- 代码
import numpy as np
np.random.seed(4)
arr8 = np.random.randint(0,20,size=(4,5))
print(arr8)
# 行逆向
print(arr8[::-1])
# 列逆向
print(arr8[:,::-1])
- 运行结果
第八题
如何找到数组中每行的最大值
- 代码
import numpy as np
np.random.seed(5)
arr9 = np.random.randint(0,20,size=(4,5))
print(arr9)
print(np.max(arr9,axis=1))
- 运行结果:找到每行的最大值
第九题
如何按照行求最小值与最大值相除的结果:
- 代码
import numpy as np
np.random.seed(6)
arr10 = np.random.randint(0,20,size=(4,5))
print(arr10)
result = np.divide(np.min(arr10,axis=1),np.max(arr10,axis=1))
print(result)
- 运行结果:得到每行最小值与最大值相除的结果
第十题
判断两个数组是否完全相等
- 代码
import numpy as np
np.random.seed(7)
arr11 = np.random.randint(0,20,size=(4,5))
print(arr11)
arr12 = arr11.copy()
print(np.all(arr12 == arr11))
arr12[1,1] = 0
print(np.all(arr12 == arr11))
- 运行结果:使用np.all判断,只有两个数组完全一致才返回True
第十一题
设置一个数组不能修改值
- 代码
import numpy as np
arr14 = np.array([[1,2,4,7,5],
[3,7,8,3,2]])
print(arr14)
arr14.setflags(write=0)
arr14[0,1] = 0
print(arr14)
- 运行结果:数组无法修改
第十二题
找到数组中离某个元素的最近的值:
- 代码
import numpy as np
arr13 = np.array([[ 1, 8, 17, 1, 0],
[14, 10, 10, 12, 18],
[ 1, 3, 11, 5, 19],
[ 6, 9, 16, 17, 8]])
# 如找到离10的值最近的元素
def find_nearest(array, value):
dist = np.abs(array- value)
idx = np.argwhere(dist==dist[dist>0].min())
m,n = idx.shape
near_list = []
for row in range(m):
near_one = arr13[idx[row,0],idx[row,1]]
near_list.append(near_one)
return near_list
print(find_nearest(arr13,10))
- 运行结果:找出了离10最近的两个元素9,11