Python数据分析练习(一) 科学计算库Numpy

1.创建从0到15的一维数组。
import numpy as np
#arr=np.array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
arr=np.arange(0,16,1)
print(arr)
2.创建一个5*4的二维数组,值全为True(真)。
import numpy as np
arr=np.ones((5,4),dtype=bool)
arr
3.从数组[3, 4, 0, 0, 5, 0]中找出非0元素的位置索引。
import numpy as np
arr=np.array([3,4,0,0,5,0])
inder=np.where(arr!=0)
inder
4.从数组np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])中提取所有的偶数。
import numpy as np
arr=np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print(arr[arr%2==0])
5.将数组np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])中的所有奇数替换为-1。
arr2=np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr2[arr%2!=0]=-1
print(arr2)
6.将数组np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])中的所有偶数替换为-1,而不改变原数组。
import numpy as np
arr=np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr3=np.where(arr%2==0,-1,arr)
print(arr3)
7.将一维数组np.arange(10)转换为2行的二维数组。
import numpy as np
arr=np.arange(10).reshape((2,-1))
arr
8.将数组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)
arr3=np.vstack((arr1,arr2))
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))
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)
arr 
11.从数组np.arange(15)中提取4到12之间的所有数字。
import numpy as np
arr1 = np.arange(15)
arr2=arr1[(arr1>=4)&(arr1<=12)]
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]]
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],:]
arr1
14.创建一个形状为5x3的二维数组,其包含5到10之间的随机浮点数
import numpy as np
arr=np.random.uniform(5,10,(5,3))
arr
15.获取数组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])
#index=np.isin(a,b)
arr15=np.unique(a[index])
arr15
16从数组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])
#c=list(set(a).difference(set(b)))
c=[i for i in a if i not in b]
c
17.反转二维数组np.arange(9).reshape(3,3)的行。
import numpy as np
arr=np.arange(9).reshape(3,3)
arr17=arr[::-1]
arr17
18.反转二维数组np.arange(9).reshape(3,3)的列。
import numpy as np
arr=np.arange(9).reshape(3,3)
arr18=arr[:,::-1]
arr18 
19.把数组np.arange(15)的随机位换成值44
arr=np.arange(15)
np.random.seed(10)
arr[np.random.choice(len(arr))]=44
arr
20.查找数组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 = np.unique(arr)
count = len(unique_values)
print("唯一值的数量为:", count)
21.找出二维数组np.arange(16).reshape(4,4)每一行中的最大值。
import numpy as np
arr = np.arange(16).reshape(4,4)
max_values = np.amax(arr, axis=1)
print("每一行中的最大值为:", max_values)
22.计算数组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)
23.起点3,长度10和步长5,创建一个numpy数组。
import numpy as np
start = 3
length = 10
step = 5
arr = np.arange(start, start + length * step, step)
print("创建的数组为:", arr)
24.从二维数组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])
arr24=a-b[:,np.newaxis]
arr24
25.判断数组np.array([1,2,3,2,3,4,3,4,5,6])有没有NaN值。
arr=np.array([1,2,3,2,3,4,3,4,5,6])
arr25=np.isnan(arr).any()
arr25
26.把数组[1,2,3,2,np.nan,4,3,4,5,6]中的NaN值替换成0。
arr=np.array([1,2,3,2,np.nan,4,3,4,5,6])
array[np.isnan(arr)]=0
array
27.求数组np.array([7,2,10,2,7,4,9,4,9,8])中的第二大值。
arr=np.array([7,2,10,2,7,4,9,4,9,8])
arr27=np.unique(arr)[-2]
arr27
28.把数组np.random.randint(1,10(3,3))按照数组最后一列的数值进行排序
np.random.seed(5)
arr=np.random.randint(1,10,(3,3))
order=np.argsort(arr[:,-1])
arr28=arr[order,:]
arr28
29.找出数组np.array([7,2,10,2,7,2,4,9,4,9,8])中出现频率最高的值。
arr=np.array([7,2,10,2,7,2,4,9,4,9,8])
arr29=np.unique(arr,return_counts=True)[0][0]
arr29
30.找出数组np.array([1, 2, 1, 1, 3, 4, 3, 1, 1, 2, 1, 1, 2])中第五个1出现的位置。
arr=np.array([1, 2, 1, 1, 3, 4, 3, 1, 1, 2, 1, 1, 2])
arr30=np.argsort(arr)[4]
arr30 
31.创建一个5*5的矩阵,每行的数值都是从0到4。
import numpy as np
a=np.arange(5)
b=np.zeros((5,5))
arr31=a+b
arr31
32.给定数组[5, 4 3, 3, 1],如何得到在这个数组的每个元素之间插入4个0后的新数组?
a=np.array([5, 4,3, 3, 1]).reshape(5,1)
b=np.zeros((5,4))
arr32=np.concatenate([a,b],axis=1)
arr32
33.如何根据第4列来对一个6*6随机整数矩阵排序?
arr33=np.random.randint(0,36,size=36).reshape(6,6)
arr33
34.	NumPy矩阵操作:
#(1)创建主对角线都是5的5x5矩阵;
result=np.diag([5,5,5,5,5])
result
#(2)	交换第一列与第二列;
a2=result[[1,0,2,3,4],:]
a2
#(3)交换倒数第一行与倒数第二行;
a3=result[:,[0,1,2,4,3]]
a3
#(4)计算该矩阵的行列式;
a4=np.linalg.det(result)
a4
#(5)求该矩阵的逆;
a5=np.linalg.inv(result)
a5
#(6)将矩阵中值为0的元素修改为8;
a6=result[result==0]=8
result
#(7)对result矩阵按列求和;
a7=np.sum(result,0)
a7
#(8)对result矩阵按行求和。  
a8=np.sum(result,1)
a8

  • 11
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值