数据分析——numpy练习题

第一题

查看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在这里插入图片描述
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值