当前位置:   article > 正文

Python数据分析练习(一) 科学计算库Numpy_使用代码创建一个从0-15的一维数组

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/1004433
推荐阅读
相关标签
  

闽ICP备14008679号