Python从入门到精通2–numpy总结
文章目录- 1.查看numpy版本
- 2.创建十个全为0的一维数组
- 3.修改数据类型为整数
- 4.创建固定步长的数
- 5.列表创建数组
- 6.创建全是1的矩阵
- 7.创建布尔类型的True
- 8.创建等差数列
- 9.创建等差数列
- 10.创建3x3矩阵
- 11.创建3x3矩阵
- 12.将第五题的result修改为3x3矩阵
- 13.对上一题生成的result取转置
- 14.查看数据类型
- 15.查看内存占用
- 16.将数据类型修改为float
- 17.提取第三行第三列的元素
- 18.将第三行第三列的元素放大十倍
- 19.提取result中的所有偶数
- 20.将result中所有奇数修改为666
- 21.创建主对角线都是5的5x5矩阵
- 22.交换第一列与第二列
- 23.交换第一行与第二行
- 24.判断两个矩阵是否有任何元素不同(使用22,23两题得到的矩阵)
- 25.计算两个矩阵不同元素的个数(使用22,23两题得到的矩阵)
- 26.找到两个矩阵不同元素的位置(使用22,23两题得到的矩阵)
- 27.矩阵乘法(使用22,23两题得到的矩阵)
- 28.矩阵对应元素相乘(使用22,23两题得到的矩阵)
- 29.计算行列式(使用21题生成的矩阵)
- 30.矩阵求逆(使用21题生成的矩阵)
- 31.将22与23题生成的np.array对象修改为np.matrix对象
- 32.计算上一题生成的两个np.matrix格式矩阵的对应元素乘积(对比异同)
- 33.对31题生成的两个np.matrix格式矩阵做矩阵乘法(对比异同)
- 34.将两个矩阵按照行拼接
- 35.将两个矩阵按照列拼接
- 36.思考下面代码运行后new的结果
- 37.找到new中大于1的元素的位置
- 38.将new中大于1的元素修改为9
- 39.对new按列求和
- 40.对new按行求和
- 41 生成指定格式数据
- 42 找到每列的最大值
- 43 找到每行的最小值
- 44 提取data每个元素的出现次数
- 45 获取data每行元素的大小排名
- 46 将数组按行重复一次
- 47 去除数组的重复行
- 48 不放回抽样
- 49 提取data第二行中不含第三行的元素的元素
- 50 判断data是否有空行
- 51 将每行升序排列
- 52 将data的数据格式修改为float
- 53 将小于5的元素修改为nan
- 54 删除data1含有nan的行
- 55 找出data1第一行出现频率最高的值
- 56 找到data1中与100最接近的数字
- 57 data1每一行的元素减去每一行的平均值
- 58 将data1归一化至区间[0,1]
- 59 将data1标准化
- 60 将data1存储至本地
- 61.如何获得两个数组之间的相同元素
- 62.如何从一个数组中删除另一个数组存在的元素
- 63.如何修改一个数组为只读模式
- 64.如何将list转为numpy数组
- 65.如何将pd.DataFrame转为numpy数组
- 66.如何使用numpy进行描述性统计分析
- 67.如何使用numpy进行概率抽样
- 68.如何创建副本
- 69.如何对数组切片
- 70.如何使用NumPy操作字符串
- 71.如何对数据向上/下取整
- 72.如何取消默认科学计数显示数据
- 73.如何使用NumPy对二维数组逆序
- 74.如何使用NumPy根据位置查找元素
- 75.如何使用numpy求余数
- 76.如何使用NumPy进行矩阵SVD分解
- 77.如何使用NumPy多条件筛选数据
- 78.如何使用NumPy对数组分类
- 79如何使用NumPy压缩矩阵
- 80.如何使用numpy求解线性方程组
1.查看numpy版本
代码语言:javascript复制import numpy as np
print(np.__version__)
代码语言:javascript复制1.19.2
2.创建十个全为0的一维数组
代码语言:javascript复制np.zeros(10)
代码语言:javascript复制array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
3.修改数据类型为整数
代码语言:javascript复制np.zeros(10,dtype = 'int')
代码语言:javascript复制array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
4.创建固定步长的数
代码语言:javascript复制np.arange(0,100,5)
代码语言:javascript复制array([ 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80,
85, 90, 95])
5.列表创建数组
代码语言:javascript复制List = [1,2,3,4,5,6,7,8,9]
result = np.array(List)
result
代码语言:javascript复制array([1, 2, 3, 4, 5, 6, 7, 8, 9])
6.创建全是1的矩阵
代码语言:javascript复制#方法1
np.ones((3,3))
#方法2
np.array([[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]])
代码语言:javascript复制array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
7.创建布尔类型的True
代码语言:javascript复制np.full((2,2), True, dtype=bool)
代码语言:javascript复制array([[ True, True],
[ True, True]])
8.创建等差数列
备注:从5开始,50结束,共10个数据
代码语言:javascript复制np.linspace(start=5,stop=50,num=10)
代码语言:javascript复制array([ 5., 10., 15., 20., 25., 30., 35., 40., 45., 50.])
9.创建等差数列
代码语言:javascript复制np.arange(start = 5, stop = 55, step = 5,dtype = 'int32')
代码语言:javascript复制array([ 5, 10, 15, 20, 25, 30, 35, 40, 45, 50])
10.创建3x3矩阵
备注:矩阵元素均为0—10之间的随机数
代码语言:javascript复制np.random.randint(0,10,(3,3))
代码语言:javascript复制array([[5, 3, 3],
[2, 0, 4],
[7, 6, 2]])
11.创建3x3矩阵
备注:矩阵元素均为服从标准正态分布的随机数
代码语言:javascript复制np.random.randn(3, 3)
代码语言:javascript复制array([[ 0.77191714, 1.99485092, 0.36574655],
[-2.35963788, -0.18879237, 1.00267285],
[-1.20021396, -0.87413623, -0.17664144]])
12.将第五题的result修改为3x3矩阵
代码语言:javascript复制result = result.reshape(3,3)
13.对上一题生成的result取转置
代码语言:javascript复制result.T
代码语言:javascript复制array([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]])
14.查看数据类型
代码语言:javascript复制result.dtype
#dtype('int64')
代码语言:javascript复制dtype('int32')
15.查看内存占用
代码语言:javascript复制#方法一:直接查看
print(result.nbytes)
#方法2手动计算
print(result.itemsize * 9)
代码语言:javascript复制36
36
16.将数据类型修改为float
代码语言:javascript复制result = result.astype(float)
17.提取第三行第三列的元素
代码语言:javascript复制result[2,2]
代码语言:javascript复制9.0
18.将第三行第三列的元素放大十倍
代码语言:javascript复制result[2,2] = result[2,2] * 10
19.提取result中的所有偶数
代码语言:javascript复制result[result % 2 == 0]
代码语言:javascript复制array([ 2., 4., 6., 8., 90.])
20.将result中所有奇数修改为666
代码语言:javascript复制result[result % 2 == 1] = 666
21.创建主对角线都是5的5x5矩阵
代码语言:javascript复制result = np.diag([5,5,5,5,5])
result
代码语言:javascript复制array([[5, 0, 0, 0, 0],
[0, 5, 0, 0, 0],
[0, 0, 5, 0, 0],
[0, 0, 0, 5, 0],
[0, 0, 0, 0, 5]])
22.交换第一列与第二列
代码语言:javascript复制a = result[:, [1,0,2,3,4]]
23.交换第一行与第二行
代码语言:javascript复制b = result[[0,1,2,4,3], :]
24.判断两个矩阵是否有任何元素不同(使用22,23两题得到的矩阵)
代码语言:javascript复制print((a == b).all())
代码语言:javascript复制False
25.计算两个矩阵不同元素的个数(使用22,23两题得到的矩阵)
代码语言:javascript复制len(np.argwhere(a != b))
代码语言:javascript复制8
26.找到两个矩阵不同元素的位置(使用22,23两题得到的矩阵)
代码语言:javascript复制np.argwhere(a != b)
代码语言:javascript复制array([[0, 0],
[0, 1],
[1, 0],
[1, 1],
[3, 3],
[3, 4],
[4, 3],
[4, 4]], dtype=int64)
27.矩阵乘法(使用22,23两题得到的矩阵)
代码语言:javascript复制np.dot(a,b)
代码语言:javascript复制array([[ 0, 25, 0, 0, 0],
[25, 0, 0, 0, 0],
[ 0, 0, 25, 0, 0],
[ 0, 0, 0, 0, 25],
[ 0, 0, 0, 25, 0]])
28.矩阵对应元素相乘(使用22,23两题得到的矩阵)
代码语言:javascript复制print(np.multiply(a,b))
print('========方法2========')
print(a * b) #方法2
代码语言:javascript复制[[ 0 0 0 0 0]
[ 0 0 0 0 0]
[ 0 0 25 0 0]
[ 0 0 0 0 0]
[ 0 0 0 0 0]]
========方法2========
[[ 0 0 0 0 0]
[ 0 0 0 0 0]
[ 0 0 25 0 0]
[ 0 0 0 0 0]
[ 0 0 0 0 0]]
29.计算行列式(使用21题生成的矩阵)
代码语言:javascript复制np.linalg.det(result)
代码语言:javascript复制3124.999999999999
30.矩阵求逆(使用21题生成的矩阵)
代码语言:javascript复制np.linalg.inv(result)
代码语言:javascript复制array([[0.2, 0. , 0. , 0. , 0. ],
[0. , 0.2, 0. , 0. , 0. ],
[0. , 0. , 0.2, 0. , 0. ],
[0. , 0. , 0. , 0.2, 0. ],
[0. , 0. , 0. , 0. , 0.2]])
31.将22与23题生成的np.array对象修改为np.matrix对象
代码语言:javascript复制a = np.matrix(a)
b = np.matrix(b)
32.计算上一题生成的两个np.matrix格式矩阵的对应元素乘积(对比异同)
代码语言:javascript复制np.multiply(a,b)
代码语言:javascript复制matrix([[ 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0],
[ 0, 0, 25, 0, 0],
[ 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0]])
33.对31题生成的两个np.matrix格式矩阵做矩阵乘法(对比异同)
代码语言:javascript复制a * b
代码语言:javascript复制matrix([[ 0, 25, 0, 0, 0],
[25, 0, 0, 0, 0],
[ 0, 0, 25, 0, 0],
[ 0, 0, 0, 0, 25],
[ 0, 0, 0, 25, 0]])
34.将两个矩阵按照行拼接
代码语言:javascript复制np.hstack((a,b))
代码语言:javascript复制matrix([[0, 5, 0, 0, 0, 5, 0, 0, 0, 0],
[5, 0, 0, 0, 0, 0, 5, 0, 0, 0],
[0, 0, 5, 0, 0, 0, 0, 5, 0, 0],
[0, 0, 0, 5, 0, 0, 0, 0, 0, 5],
[0, 0, 0, 0, 5, 0, 0, 0, 5, 0]])
35.将两个矩阵按照列拼接
代码语言:javascript复制np.vstack((a,b))
代码语言:javascript复制matrix([[0, 5, 0, 0, 0],
[5, 0, 0, 0, 0],
[0, 0, 5, 0, 0],
[0, 0, 0, 5, 0],
[0, 0, 0, 0, 5],
[5, 0, 0, 0, 0],
[0, 5, 0, 0, 0],
[0, 0, 5, 0, 0],
[0, 0, 0, 0, 5],
[0, 0, 0, 5, 0]])
36.思考下面代码运行后new的结果
代码语言:javascript复制new = np.pad(result,pad_width = 1,constant_values=1)
37.找到new中大于1的元素的位置
代码语言:javascript复制np.argwhere(new > 1)
代码语言:javascript复制array([[1, 1],
[2, 2],
[3, 3],
[4, 4],
[5, 5]], dtype=int64)
38.将new中大于1的元素修改为9
代码语言:javascript复制new[new > 1] = 8
new
代码语言:javascript复制array([[1, 1, 1, 1, 1, 1, 1],
[1, 8, 0, 0, 0, 0, 1],
[1, 0, 8, 0, 0, 0, 1],
[1, 0, 0, 8, 0, 0, 1],
[1, 0, 0, 0, 8, 0, 1],
[1, 0, 0, 0, 0, 8, 1],
[1, 1, 1, 1, 1, 1, 1]])
39.对new按列求和
代码语言:javascript复制np.sum(new, 0)
代码语言:javascript复制array([ 7, 10, 10, 10, 10, 10, 7])
40.对new按行求和
代码语言:javascript复制np.sum(new, 1)
代码语言:javascript复制array([ 7, 10, 10, 10, 10, 10, 7])
代码语言:javascript复制import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings("ignore")
41 生成指定格式数据
备注:使用numpy生成6行6列的二维数组,值为1-100随机数
代码语言:javascript复制data = np.random.randint(1,100, [6,6])
data
代码语言:javascript复制array([[64, 81, 4, 42, 31, 32],
[73, 24, 12, 93, 67, 87],
[95, 1, 61, 60, 63, 45],
[56, 22, 75, 50, 63, 38],
[67, 82, 39, 64, 12, 77],
[77, 41, 52, 53, 7, 7]])
42 找到每列的最大值
代码语言:javascript复制np.amax(data, axis=0)
代码语言:javascript复制array([95, 82, 75, 93, 67, 87])
43 找到每行的最小值
代码语言:javascript复制np.amin(data, axis=1)
代码语言:javascript复制array([ 4, 12, 1, 22, 12, 7])
44 提取data每个元素的出现次数
代码语言:javascript复制np.unique(data,return_counts=True)
代码语言:javascript复制(array([ 1, 4, 7, 12, 22, 24, 31, 32, 38, 39, 41, 42, 45, 50, 52, 53, 56,
60, 61, 63, 64, 67, 73, 75, 77, 81, 82, 87, 93, 95]),
array([1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
1, 1, 2, 1, 1, 1, 1, 1], dtype=int64))
45 获取data每行元素的大小排名
代码语言:javascript复制data.argsort()
代码语言:javascript复制array([[2, 4, 5, 3, 0, 1],
[2, 1, 4, 0, 5, 3],
[1, 5, 3, 2, 4, 0],
[1, 5, 3, 0, 4, 2],
[4, 2, 3, 0, 5, 1],
[4, 5, 1, 2, 3, 0]], dtype=int64)
46 将数组按行重复一次
代码语言:javascript复制np.repeat(data, 2, axis=0)
代码语言:javascript复制array([[64, 81, 4, 42, 31, 32],
[64, 81, 4, 42, 31, 32],
[73, 24, 12, 93, 67, 87],
[73, 24, 12, 93, 67, 87],
[95, 1, 61, 60, 63, 45],
[95, 1, 61, 60, 63, 45],
[56, 22, 75, 50, 63, 38],
[56, 22, 75, 50, 63, 38],
[67, 82, 39, 64, 12, 77],
[67, 82, 39, 64, 12, 77],
[77, 41, 52, 53, 7, 7],
[77, 41, 52, 53, 7, 7]])
47 去除数组的重复行
代码语言:javascript复制np.unique(data,axis = 0)
代码语言:javascript复制array([[56, 22, 75, 50, 63, 38],
[64, 81, 4, 42, 31, 32],
[67, 82, 39, 64, 12, 77],
[73, 24, 12, 93, 67, 87],
[77, 41, 52, 53, 7, 7],
[95, 1, 61, 60, 63, 45]])
48 不放回抽样
备注:从data的第一行中不放回抽3个元素
代码语言:javascript复制np.random.choice(data[0:1][0], 3, replace=False)
代码语言:javascript复制array([31, 42, 81])
49 提取data第二行中不含第三行的元素的元素
代码语言:javascript复制a = data[1:2]
b = data[2:3]
index=np.isin(a,b)
array=a[~index]
array
代码语言:javascript复制array([73, 24, 12, 93, 67, 87])
50 判断data是否有空行
代码语言:javascript复制(~data.any(axis=1)).any()
代码语言:javascript复制False
51 将每行升序排列
代码语言:javascript复制data.sort(axis = 1)
data
代码语言:javascript复制array([[ 4, 31, 32, 42, 64, 81],
[12, 24, 67, 73, 87, 93],
[ 1, 45, 60, 61, 63, 95],
[22, 38, 50, 56, 63, 75],
[12, 39, 64, 67, 77, 82],
[ 7, 7, 41, 52, 53, 77]])
52 将data的数据格式修改为float
代码语言:javascript复制data1 = data.astype(float)
53 将小于5的元素修改为nan
代码语言:javascript复制data1[data1 < 5] = np.nan
data1
代码语言:javascript复制array([[nan, 31., 32., 42., 64., 81.],
[12., 24., 67., 73., 87., 93.],
[nan, 45., 60., 61., 63., 95.],
[22., 38., 50., 56., 63., 75.],
[12., 39., 64., 67., 77., 82.],
[ 7., 7., 41., 52., 53., 77.]])
54 删除data1含有nan的行
代码语言:javascript复制data1 = data1[~np.isnan(data1).any(axis=1), :]
代码语言:javascript复制data1
代码语言:javascript复制array([[12., 24., 67., 73., 87., 93.],
[22., 38., 50., 56., 63., 75.],
[12., 39., 64., 67., 77., 82.],
[ 7., 7., 41., 52., 53., 77.]])
55 找出data1第一行出现频率最高的值
代码语言:javascript复制vals, counts = np.unique(data1[0,:], return_counts=True)
print(vals[np.argmax(counts)])
代码语言:javascript复制12.0
56 找到data1中与100最接近的数字
代码语言:javascript复制a = 100
data1.flat[np.abs(data1 - a).argmin()]
代码语言:javascript复制93.0
57 data1每一行的元素减去每一行的平均值
代码语言:javascript复制data1 - data1.mean(axis=1, keepdims=True)
代码语言:javascript复制array([[-47.33333333, -35.33333333, 7.66666667, 13.66666667,
27.66666667, 33.66666667],
[-28.66666667, -12.66666667, -0.66666667, 5.33333333,
12.33333333, 24.33333333],
[-44.83333333, -17.83333333, 7.16666667, 10.16666667,
20.16666667, 25.16666667],
[-32.5 , -32.5 , 1.5 , 12.5 ,
13.5 , 37.5 ]])
58 将data1归一化至区间[0,1]
代码语言:javascript复制a = np.max(data1) - np.min(data1)
(data1 - np.min(data1)) / a
代码语言:javascript复制array([[0.05813953, 0.19767442, 0.69767442, 0.76744186, 0.93023256,
1. ],
[0.1744186 , 0.36046512, 0.5 , 0.56976744, 0.65116279,
0.79069767],
[0.05813953, 0.37209302, 0.6627907 , 0.69767442, 0.81395349,
0.87209302],
[0. , 0. , 0.39534884, 0.52325581, 0.53488372,
0.81395349]])
59 将data1标准化
代码语言:javascript复制mu = np.mean(data1, axis=0)
sigma = np.std(data1, axis=0)
(data1 - mu) / sigma
代码语言:javascript复制array([[-0.22941573, -0.23111136, 1.09030457, 1.31008094, 1.30769231,
1.61229232],
[ 1.60591014, 0.84740834, -0.52145001, -0.7145896 , -0.53846154,
-0.96737539],
[-0.22941573, 0.92444546, 0.80587729, 0.59549133, 0.53846154,
0.03582872],
[-1.14707867, -1.54074243, -1.37473184, -1.19098267, -1.30769231,
-0.68074565]])
60 将data1存储至本地
代码语言:javascript复制np.savetxt('test.txt',data1)
代码语言:javascript复制import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings("ignore")
61.如何获得两个数组之间的相同元素
输入:
arr1 = np.random.randint(10,6,6)
arr2 = np.random.randint(10,6,6)
代码语言:javascript复制arr1 = np.random.randint(1,10,10)
arr2 = np.random.randint(1,10,10)
代码语言:javascript复制print("arr1: %s"%arr1)
print("arr2: %s"%arr2)
np.intersect1d(arr1,arr2)
代码语言:javascript复制arr1: [1 7 4 9 2 3 8 8 2 9]
arr2: [5 7 7 2 3 7 4 8 4 1]
array([1, 2, 3, 4, 7, 8])
62.如何从一个数组中删除另一个数组存在的元素
输入:
arr1 = np.random.randint(1,10,10)
arr2 = np.random.randint(1,10,10)
代码语言:javascript复制arr1 = np.random.randint(1,10,10)
arr2 = np.random.randint(1,10,10)
print("arr1: %s"%arr1)
print("arr2: %s"%arr2)
np.setdiff1d(arr1,arr2)
代码语言:javascript复制arr1: [3 7 6 4 4 8 6 2 4 6]
arr2: [7 2 2 4 5 5 3 7 2 1]
array([6, 8])
63.如何修改一个数组为只读模式
输入:
arr1 = np.random.randint(1,10,10)
代码语言:javascript复制arr1 = np.random.randint(1,10,10)
arr1.flags.writeable = False
代码语言:javascript复制#尝试修改会报错!
arr1[0] = 6
代码语言:javascript复制---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-69-ddcf305e5efb> in <module>
1 #尝试修改会报错!
----> 2 arr1[0] = 6
ValueError: assignment destination is read-only
64.如何将list转为numpy数组
输入:
a = [1,2,3,4,5]
代码语言:javascript复制a = [1,2,3,4,5]
np.array(a)
65.如何将pd.DataFrame转为numpy数组
输入:
df = pd.DataFrame({‘A’:[1,2,3],‘B’:[4,5,6],‘C’:[7,8,9]})
代码语言:javascript复制df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})
print(df)
print(df.values)
66.如何使用numpy进行描述性统计分析
输入:
arr1 = np.random.randint(1,10,10)
arr2 = np.random.randint(1,10,10)
代码语言:javascript复制arr1 = np.random.randint(1,10,10)
arr2 = np.random.randint(1,10,10)
print("arr1的平均数为:%s" %np.mean(arr1))
print("arr1的中位数为:%s" %np.median(arr1))
print("arr1的方差为:%s" %np.var(arr1))
print("arr1的标准差为:%s" %np.std(arr1))
print("arr1,arr的相关性矩阵为:%s" %np.cov(arr1,arr2))
print("arr1,arr的协方差矩阵为:%s" %np.corrcoef(arr1,arr2))
67.如何使用numpy进行概率抽样
输入:
arr = np.array([1,2,3,4,5])
代码语言:javascript复制arr = np.array([1,2,3,4,5])
np.random.choice(arr,10,p = [0.1,0.1,0.1,0.1,0.6])
68.如何创建副本
输入:
arr = np.array([1,2,3,4,5])
代码语言:javascript复制#对副本数据进行修改,不会影响到原始数据
arr = np.array([1,2,3,4,5])
arr1 = arr.copy()
69.如何对数组切片
输入: arr = np.arange(10)
备注:从索引2开始到索引8停止,间隔为2
代码语言:javascript复制arr = np.arange(10)
a = slice(2,8,2)
arr[a] #等价于arr[2:8:2]
代码语言:javascript复制array([2, 4, 6])
70.如何使用NumPy操作字符串
输入:
str1 = [‘I love’]
str2 = [’ Python’]
代码语言:javascript复制#拼接字符串
str1 = ['I love']
str2 = [' Python']
print(np.char.add(str1,str2))
#大写首字母
str3 = np.char.add(str1,str2)
print(np.char.title(str3))
代码语言:javascript复制['I love Python']
['I Love Python']
71.如何对数据向上/下取整
输入:
arr = np.random.uniform(0,10,10)
代码语言:javascript复制arr = np.random.uniform(0,10,10)
print(arr)
###向上取整
print(np.ceil(arr))
###向下取整
print(np.floor(arr) )
代码语言:javascript复制[7.93163895 0.25298605 8.03086361 6.60320156 8.03587266 2.22664371
9.18459953 9.2502519 7.75398358 4.22163385]
[ 8. 1. 9. 7. 9. 3. 10. 10. 8. 5.]
[7. 0. 8. 6. 8. 2. 9. 9. 7. 4.]
72.如何取消默认科学计数显示数据
代码语言:javascript复制np.set_printoptions(suppress=True)
73.如何使用NumPy对二维数组逆序
输入:
arr = np.random.randint(1,10,[3,3])
代码语言:javascript复制arr = np.random.randint(1,10,[3,3])
print(arr)
print('列逆序')
print(arr[:, -1::-1])
print('行逆序')
print(arr[-1::-1, :])
代码语言:javascript复制[[3 1 1]
[8 7 2]
[4 4 8]]
列逆序
[[1 1 3]
[2 7 8]
[8 4 4]]
行逆序
[[4 4 8]
[8 7 2]
[3 1 1]]
74.如何使用NumPy根据位置查找元素
输入:
arr1 = np.random.randint(1,10,5)
arr2 = np.random.randint(1,20,10)
备注:在arr2中根据arr1中元素以位置查找
代码语言:javascript复制arr1 = np.random.randint(1,10,5)
arr2 = np.random.randint(1,20,10)
print(arr1)
print(arr2)
print(np.take(arr2,arr1))
代码语言:javascript复制[9 6 5 4 9]
[13 14 4 16 4 10 15 6 5 3]
[ 3 15 10 4 3]
75.如何使用numpy求余数
输入:
a = 10
b = 3
代码语言:javascript复制np.mod(a,b)
代码语言:javascript复制---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-76-2a4695c40758> in <module>
----> 1 np.mod(a,b)
TypeError: unsupported operand type(s) for %: 'slice' and 'int'
76.如何使用NumPy进行矩阵SVD分解
输入:
A = np.random.randint(1,10,[3,3])
代码语言:javascript复制np.linalg.svd(A)
77.如何使用NumPy多条件筛选数据
输入:
arr = np.random.randint(1,20,10)
代码语言:javascript复制arr = np.random.randint(1,20,10)
print(arr[(arr>1)&(arr<7)&(arr%2==0)])
代码语言:javascript复制[4]
78.如何使用NumPy对数组分类
输入:
arr = np.random.randint(1,20,10)
备注:将大于等于7,或小于3的元素标记为1,其余为0
代码语言:javascript复制arr = np.random.randint(1,20,10)
print(arr)
print(np.piecewise(arr, [arr < 3, arr >= 7], [-1, 1]))
代码语言:javascript复制[17 16 1 1 7 2 5 3 13 16]
[ 1 1 -1 -1 1 -1 0 0 1 1]
79如何使用NumPy压缩矩阵
输入:
arr = np.random.randint(1,10,[3,1])
备注:从数组的形状中删除单维度条目,即把shape中为1的维度去掉
代码语言:javascript复制arr = np.random.randint(1,10,[3,1])
print(arr)
print(np.squeeze(arr))
代码语言:javascript复制[[7]
[9]
[1]]
[7 9 1]
80.如何使用numpy求解线性方程组
输入:
A = np.array([[1, 2, 3], [2, -1, 1], [3, 0, -1]])
b = np.array([9, 8, 3])
求解Ax = b
代码语言:javascript复制A = np.array([[1, 2, 3], [2, -1, 1], [3, 0, -1]])
b = np.array([9, 8, 3])
x = np.linalg.solve(A, b)
print(x)
代码语言:javascript复制[ 2. -1. 3.]