Python数据分析与应用---Numpy数组计算基础(课后作业题)

  1. 创建从0到15的一维数组。

import numpy as np #导入NumPy库
#方法一:
arr1 = np.array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]) #创建一维数组
print("创建的一维数组:",arr1)
#方法二:
arr2 = np.arange(0,16,1) #数组的开始值是0(包括0),终值是16(不包括16),步长是1
print("创建的一维数组:",arr2)

2.创建一个5*4的二维数组,值全为True(真)。

import numpy as np #导入NumPy库
arr1 = np.ones((5,4),dtype=bool)#ones函数用于创建元素全部为1的数组
#dtype:数组元素类型;bool:用1位存储的布尔值(值为True或False)
print("一个5*4的二维数组,值全为True(真):",arr1)

3.从数组[3, 4, 0, 0, 5, 0]中找出非0元素的位置索引。

import numpy as np  #导入NumPy库
arr1 = np.array([3,4,0,0,5,0]) #创建一维数组
inder = np.where(arr1!=0) #where找出非0(arr1!=0)元素的位置
print(inder)

4.从数组np.random.choice(30,size=15,replace=False)中提取所有的偶数

5.将数组np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])中的所有奇数替换为-1

import numpy as np   #导入NumPy库
arr  =np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) #创建一维数组
arr[arr%2!=0]=-1 
# arr%2!=0:数组除与2的余数(%取余数)不等于0=奇数
print(arr)

6.数组np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])中的所有偶数替换为-1,而不改变原数组。

import numpy as np  #导入NumPy库
arr=np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) #创建一维数组
arr1=np.where(arr%2==0,-1,arr) 
#arr%2==0:数组除于2余数0(偶数)
print(arr1)

7.将一维数组np.arange(10)转换为2行的二维数组。

import numpy as np   #导入NumPy库
arr=np.arange(10).reshape((2,-1))#reshape改变数组形状
print(arr)

8.将数组a = np.arange(10).reshape(2,-1)和数组b = np.repeat(1, 10).reshape(2,-1)垂直堆叠。

import numpy as np   #导入NumPy库
arr1=np.arange(10).reshape((2,-1)) #reshape函数改变数组形状
arr2=np.repeat(1, 10).reshape(2,-1)#repeat函数实现数据重复
arr3=np.vstack((arr1,arr2)) #vstack函数实现数组纵向组合
print(arr3)

9.将数组a = np.arange(10).reshape(2,-1)和数组b = np.repeat(1, 10).reshape(2,-1)水平堆叠。

import numpy as np
arr1=np.arange(10).reshape((2,-1))
arr2=np.repeat(1, 10).reshape(2,-1)
arr4=np.hstack((arr1,arr2)) #hastack函数实现数组横向组合
print(arr4)

10.获取数组a = np.array([1,2,3,2,3,4,3,4,5,6])和数组b = np.array([7,2,10,2,7,4,9,4,9,8])元素相匹配的位置。

import numpy as np
a = np.array([1,2,3,2,3,4,3,4,5,6])
b = np.array([7,2,10,2,7,4,9,4,9,8])
arr=np.where(a==b)
print(arr)

11.从数组np.arange(15)中提取4到12之间的所有数字。

import numpy as np
arr1 = np.arange(15)
arr2=arr1[(arr1>=4)&(arr1<=12)]
print(arr2)

12.交换数组np.arange(9).reshape(3,3)中的第1列和第2列

import numpy as np
arr=np.arange(9).reshape(3,3)
arr1=arr[:,[1,0,2]]
print(arr1)

13.交换数组np.arange(9).reshape(3,3)中的第1行和第2行。

import numpy as np
arr=np.arange(9).reshape(3,3)
arr1=arr[[1,0,2],:]
print(arr1)

14.创建一个形状为5x3的二维数组,其包含5到10之间的随机浮点数。

import numpy as np
arr=np.random.uniform(5,10,(5,3))
print(arr)

15.反转二维数组np.arange(9).reshape(3,3)的行。

import numpy as np
arr=np.arange(9).reshape(3,3)
arr=arr[::-1]
print(arr)

16.反转二维数组np.arange(9).reshape(3,3)的列。

import numpy as np
arr=np.arange(9).reshape(3,3)
arr=arr[:,::-1]
print(arr)

17.把数组np.arange(15)的随机一个位置的元素值换成100。

import numpy as np
arr=np.arange(15)
np.random.seed(10)
seat =np.random.choice(len(arr))
arr[seat]=100
print(arr)

18.去除数组np.array([1,2,3,2,3,4,3,4,5,6])重复值,并求剩余数值的数量。

import numpy as np
arr = np.array([1,2,3,2,3,4,3,4,5,6])
unique_values_count = len(np.unique(arr))
print("去除重复值后的数量:", unique_values_count)

19.找出(4×4)随机整数(数值范围0-50)二维数组每一行中的最大值。

import numpy as np
arr = np.random.randint(0, 50, size=(4, 4))
max_values = np.max(arr, axis=1)
print("每一行中的最大值为:", max_values)

20.计算数组a = np.array([1,2,3,2,3,4,3,4,5,6])和数组b = np.array([7,2,10,2,7,4,9,4,9,8])之间的欧式距离。

import numpy as np
a = np.array([1,2,3,2,3,4,3,4,5,6])
b = np.array([7,2,10,2,7,4,9,4,9,8])
distance = np.linalg.norm(a - b)
print("两个数组之间的欧式距离为:", distance)

21.从二维数组a = np.array([[3,3,3],[4,4,4],[5,5,5]])中的每行减去一维数组b= np.array([1,2,3])中相应的值。

import numpy as np
a = np.array([[3,3,3],[4,4,4],[5,5,5]])
b= np.array([1,2,3])
arr=a-b[:,np.newaxis]
print(arr)

22.判断数组np.array([1,2,3,2,3,4,3,4,5,6])有没有NaN值。

import numpy as np
arr=np.array([1,2,3,2,3,4,3,4,5,6])
arr=np.isnan(arr).any()
print(arr)

23.把数组[1,2,3,2,np.nan,4,3,4,5,6]中的NaN值替换成0。

import numpy as np
arr = np.array([1,2,3,2,np.nan,4,3,4,5,6])
arr = np.where(np.isnan(arr),0,arr)
print(arr)

24.求数组np.array([7,2,10,2,7,4,9,4,9,8]).reshape(2,5)中的第二大值。

import numpy as np
arr=np.array([7,2,10,2,7,4,9,4,9,8])
arr=np.unique(arr)[-2]
print(arr)

25.把数组np.random.randint(1,10,(3,3))按照数组最后一列的数值进行排序

import numpy as np
np.random.seed(5)
arr=np.random.randint(1,10,(3,3))
order=np.argsort(arr[:,-1])
arr=arr[order,:]
print(arr)

26.找出数组np.array([7,2,10,2,7,2,4,9,4,9,8])中出现频率最高的值。

import numpy as np
arr=np.array([7,2,10,2,7,2,4,9,4,9,8])
arr_26=np.unique(arr,return_counts=True)[0][0]
print(arr)

27.创建一个5*5的矩阵,每行的数值都是从0到4。

import numpy as np
a=np.arange(5)
b=a+np.zeros((5,5))
c= np.tile(a,5).reshape(5,5)
print(c)

28.如何根据第4列来对一个6*6随机整数矩阵排序?

import numpy as np
# 创建一个6x6的随机整数矩阵
matrix = np.random.randint(0, 100, size=(6, 6))
print("原始矩阵:\n", matrix)
# 根据第四列进行排序
sorted_indices = np.argsort(matrix[:, 3])
print("\n排序后的索引:\n", sorted_indices)
# 根据排序后的索引重新构造排序后的矩阵
print("\n排序后的矩阵:\n", matrix[sorted_indices])

29.对一个二维数组按列求和。

import numpy as np
arr = np.random.randint(0,10,(4,4))
sum_col = arr.sum(axis=0)
print(sum_col)

30.创建一个6*6的对角矩阵,对角线元素为[1,2,3,4,5,6]。并返回其转置矩阵。

import numpy as np
# 定义主对角线上的元素
main_diagonal = [1, 2, 3, 4, 5, 6]
# 创建对角矩阵
matrix = np.diag(main_diagonal)
print(matrix.T)

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值