2020数学建模C题
后来越来越觉得,当时建模做了个shi么…方法搞不清楚怎么用就套,代码,害,老师肯定觉得 熊孩子怎么回事 一个程序用这么多次不知道写个函数都…
程序一.附件一数据处理
1. #导包
2. import pandas as pd
3. import numpy as np
4.
5. #文件
6. file_path='123家有信贷记录企业的相关数据及产业分类.xlsx'
7. #读取sheet的名字
8. sheetName1='企业信息'
9. sheetName2='进项发票信息'
10. sheetName3='销项发票信息'
11. data_1=pd.read_excel(file_path,sheet_name=sheetName1)
12. data_2=pd.read_excel(file_path,sheet_name=sheetName2)
13. data_3=pd.read_excel(file_path,sheet_name=sheetName3)
14.
15. # 拷贝一下,老写错代码,导数据真慢
16. data_1a=data_1.copy(deep=True)
17. data_2a=data_2.copy(deep=True)
18. data_3a=data_3.copy(deep=True)
19.
20. #时间转化为整型以方便比较,分类
21. def time_trans(time_ch):
22. year = time_ch.split('-')[0]
23. month = time_ch.split('-')[1]
24. day = time_ch.split('-')[2].split(' ')[0]
25. new_date = (year + month + day )
26. return int(new_date)
27.
28. a = list(data_2a['开票日期'])
29. for i in range(len(data_2a['开票日期'])):
30. a[i] = str(a[i])
31. a[i] = time_trans(a[i])
32. data_2a['开票日期'] = a
33.
34. # 企业代号转化为整型
35. def num_trans(num_ch):
36. num = num_ch.split('E')[1]
37. return int(num)
38. a2 = list(data_2a['企业代号'])
39. for i in range(len(a2)):
40. a2[i] = num_trans(a2[i])
41. data_2a['企业代号'] = a2
42.
43. data_21 = data_2a.loc[data_2a['开票日期']<20180101] #18年之前
44. data_22 = data_2a.loc[(data_2a['开票日期']>=20180101) & (data_2a['开票日期']<20190101)] #18年
45. data_23 = data_2a.loc[data_2a['开票日期']>=20190101] #19年及之后
46. # 18年之前
47. data_211 = data_21.loc[(data_21['发票状态']=='有效发票') & (data_21['价税合计']>0)]
48. data_212 = data_21.loc[data_21['发票状态']=='作废发票']
49. data_213 = data_21.loc[(data_21['发票状态']=='有效发票') & (data_21['价税合计']<0)]
50. # 18年
51. data_221 = data_22.loc[(data_22['发票状态']=='有效发票') & (data_22['价税合计']>0)]
52. data_222 = data_22.loc[data_22['发票状态']=='作废发票']
53. data_223 = data_22.loc[(data_22['发票状态']=='有效发票') & (data_22['价税合计']<0)]
54. # 19年及之后
55. data_231 = data_23.loc[(data_23['发票状态']=='有效发票') & (data_23['价税合计']>0)]
56. data_232 = data_23.loc[data_23['发票状态']=='作废发票']
57. data_233 = data_23.loc[(data_23['发票状态']=='有效发票') & (data_23['价税合计']<0)]
58.
59. jin211 = [0 for index in range(123)] #存放18年之前每家企业的进项有效发票金额
60. a211 = list(data_211['企业代号']);b211 = list(data_211['价税合计'])
61. for i in range(len(a211)):
62. for j in range(123):
63. if a211[i] == j+1:
64. jin211[j] += b211[i]
65.
66. jin212 = [0 for index in range(123)] #存放18年之前每家企业的进项作废发票数量
67. a212 = list(data_212['企业代号']);b212 = list(data_212['价税合计'])
68. for i in range(len(a212)):
69. for j in range(123):
70. if a212[i] == j+1:
71. jin212[j] += 1
72.
73. jin213 = [0 for index in range(123)] #存放18年之前每家企业的进项负数发票数量
74. a213 = list(data_213['企业代号']);b213 = list(data_213['价税合计'])
75. for i in range(len(a213)):
76. for j in range(123):
77. if a213[i] == j+1:
78. jin213[j] += 1
79.
80. jin221 = [0 for index in range(123)] #存放18年每家企业的进项有效发票金额
81. a221 = list(data_221['企业代号']);b221 = list(data_221['价税合计'])
82. for i in range(len(a221)):
83. for j in range(123):
84. if a221[i] == j+1:
85. jin221[j] += b221[i]
86.
87. jin222 = [0 for index in range(123)] #存放18年每家企业的进项作废发票数量
88. a222 = list(data_222['企业代号']);b222 = list(data_222['价税合计'])
89. for i in range(len(a222)):
90. for j in range(123):
91. if a222[i] == j+1:
92. jin222[j] += 1
93.
94. jin223 = [0 for index in range(123)] #存放18年每家企业的进项负数发票数量
95. a223 = list(data_223['企业代号']);b223 = list(data_223['价税合计'])
96. for i in range(len(a223)):
97. for j in range(123):
98. if a223[i] == j+1:
99. jin223[j] += 1
100.
101. jin231 = [0 for index in range(123)] #存放19年及之后每家企业的进项有效发票金额
102. a231 = list(data_231['企业代号']);b231 = list(data_231['价税合计'])
103. for i in range(len(a231)):
104. for j in range(123):
105. if a231[i] == j+1:
106. jin231[j] += b231[i]
107.
108. jin232 = [0 for index in range(123)] #存放19年及之后每家企业的进项作废发票数量
109. a232 = list(data_232['企业代号']);b232 = list(data_232['价税合计'])
110. for i in range(len(a232)):
111. for j in range(123):
112. if a232[i] == j+1:
113. jin232[j] += 1
114.
115. jin233 = [0 for index in range(123)] #存放19年及之后每家企业的进项负数发票数量
116. a233 = list(data_213['企业代号']);b233 = list(data_233['价税合计'])
117. for i in range(len(a233)):
118. for j in range(123):
119. if a233[i] == j+1:
120. jin233[j] += 1
121.
122. a2 = list(data_3a['企业代号'])
123. for i in range(len(a2)):
124. a2[i] = num_trans(a2[i])
125. data_3a['企业代号'] = a2
126.
127. a = list(data_3a['开票日期'])
128. for i in range(len(data_3a['开票日期'])):
129. a[i] = str(a[i])
130. for i in range(len(a)):
131. a[i] = time_trans(a[i])
132. data_3a['开票日期'] = a
133.
134. data_31 = data_3a.loc[data_3a['开票日期']<20180101] #18年之前
135. data_32 = data_3a.loc[(data_3a['开票日期']>=20180101) & (data_3a['开票日期']<20190101)] #18年
136. data_33 = data_3a.loc[data_3a['开票日期']>=20190101] #19年及之后
137. # 18年之前
138. data_311 = data_31.loc[(data_31['发票状态']=='有效发票') & (data_31['价税合计']>0)]
139. data_312 = data_31.loc[data_31['发票状态']=='作废发票']
140. data_313 = data_31.loc[(data_31['发票状态']=='有效发票') & (data_31['价税合计']<0)]
141. # 18年
142. data_321 = data_32.loc[(data_32['发票状态']=='有效发票') & (data_32['价税合计']>0)]
143. data_322 = data_32.loc[data_32['发票状态']=='作废发票']
144. data_323 = data_32.loc[(data_32['发票状态']=='有效发票') & (data_32['价税合计']<0)]
145. # 19年及之后
146. data_331 = data_33.loc[(data_33['发票状态']=='有效发票') & (data_33['价税合计']>0)]
147. data_332 = data_33.loc[data_33['发票状态']=='作废发票']
148. data_333 = data_33.loc[(data_33['发票状态']=='有效发票') & (data_33['价税合计']<0)]
149.
150. jin311 = [0 for index in range(123)] #存放18年之前每家企业的销项有效发票金额
151. a311 = list(data_311['企业代号']);b311 = list(data_311['金额'])
152. for i in range(len(a311)):
153. for j in range(123):
154. if a311[i] == j+1:
155. jin311[j] += b311[i]
156.
157. jin312 = [0 for index in range(123)] #存放18年之前每家企业的销项作废发票数量
158. a312 = list(data_312['企业代号']);b312 = list(data_312['金额'])
159. for i in range(len(a312)):
160. for j in range(123):
161. if a312[i] == j+1:
162. jin312[j] += 1
163.
164. jin313 = [0 for index in range(123)] #存放18年之前每家企业的销项负数发票数量
165. a313 = list(data_313['企业代号']);b313 = list(data_313['金额'])
166. for i in range(len(a313)):
167. for j in range(123):
168. if a313[i] == j+1:
169. jin313[j] += 1
170.
171. jin321 = [0 for index in range(123)] #存放18年每家企业的销项有效发票金额
172. a321 = list(data_321['企业代号']);b321 = list(data_321['金额'])
173. for i in range(len(a321)):
174. for j in range(123):
175. if a321[i] == j+1:
176. jin321[j] += b321[i]
177.
178. jin322 = [0 for index in range(123)] #存放18年每家企业的销项作废发票数量
179. a322 = list(data_322['企业代号']);b322 = list(data_322['金额'])
180. for i in range(len(a322)):
181. for j in range(123):
182. if a322[i] == j+1:
183. jin322[j] += 1
184.
185. jin323 = [0 for index in range(123)] #存放18年每家企业的销项负数发票数量
186. a323 = list(data_323['企业代号']);b323 = list(data_323['金额'])
187. for i in range(len(a323)):
188. for j in range(123):
189. if a323[i] == j+1:
190. jin323[j] += 1
191.
192. jin331 = [0 for index in range(123)] #存放19年及之后每家企业的销项有效发票金额
193. a331 = list(data_331['企业代号']);b331 = list(data_331['金额'])
194. for i in range(len(a331)):
195. for j in range(123):
196. if a331[i] == j+1:
197. jin331[j] += b331[i]
198.
199. jin332 = [0 for index in range(123)] #存放19年及之后每家企业的销项作废发票数量
200. a332 = list(data_332['企业代号']);b332 = list(data_332['金额'])
201. for i in range(len(a332)):
202. for j in range(123):
203. if a332[i] == j+1:
204. jin332[j] += 1
205.
206. jin333 = [0 for index in range(123)] #存放19年及之后每家企业的销项负数发票数量
207. a333 = list(data_333['企业代号']);b333 = list(data_333['金额'])
208. for i in range(len(a333)):
209. for j in range(123):
210. if a333[i] == j+1:
211. jin333[j] += 1
212.
213. a2 = list(data_1a['企业代号'])
214. for i in range(len(a2)):
215. a2[i] = num_trans(a2[i])
216. data_1a['企业代号'] = a2
217.
218. # 根据企业代号排序
219. data_1a = data_1a.sort_values(['企业代号'], ascending = True)
220.
221. #精度问题,四舍五入保留两位小数
222. from decimal import Decimal, ROUND_HALF_UP
223. def round_up(number, num_digits):
224. """
225. 按指定位数对数值进行四舍五入。
226. :param number:要四舍五入的数字。
227. :param num_digits:要进行四舍五入运算的位数。
228. """
229. if num_digits > 0:
230. res = round_up(number * 10, num_digits - 1) / 10
231. else:
232. res = Decimal(number * 10 ** num_digits).quantize(Decimal('1'), rounding=ROUND_HALF_UP) * 10 ** -num_digits
233. return res
234.
235. jin21 = [0 for index in range(123)];jin22 = [0 for index in range(123)];jin23 = [0 for index in range(123)]
236. jin31 = [0 for index in range(123)];jin32 = [0 for index in range(123)];jin33 = [0 for index in range(123)]
237. for i in range(123):
238. jin21[i] = jin211[i]*0.2 +jin221[i]*0.3 + jin231[i]*0.5 #进项发票金额
239. jin22[i] = jin212[i]*0.2 +jin222[i]*0.3 + jin232[i]*0.5 + jin312[i]*0.2 +jin322[i]*0.3 + jin332[i]*0.5 #作废发票数量
240. jin23[i] = jin213[i]*0.2 +jin223[i]*0.3 + jin233[i]*0.5 + jin313[i]*0.2 +jin323[i]*0.3 + jin333[i]*0.5 #负数发票数量
241. jin31[i] = jin311[i]*0.2 +jin321[i]*0.3 + jin331[i]*0.5 #销项发票金额
242. for i in range(123):
243. jin21[i] = round_up(jin21[i],2)
244. jin31[i] = round_up(jin31[i],2)
245.
246. data_1a['进项发票金额'] = jin21
247. data_1a['作废发票数量'] = jin22
248. data_1a['负数发票数量'] = jin23
249. data_1a['销项发票金额'] = jin31
250.
251. # 进销平衡
252. ph1 = [0 for index in range(123)];ph2 = [0 for index in range(123)];ph3 = [0 for index in range(123)];ph = [0 for index in range(123)]
253. for i in range(len(ph1)):
254. ph1[i] = jin311[i]-jin211[i]
255. ph2[i] = jin321[i]-jin221[i]
256. ph3[i] = jin331[i]-jin231[i]
257. ph[i] = ph1[i]*0.2+ph2[i]*0.3+ph3[i]*0.5
258. for i in range(123):
259. ph1[i] = round_up(ph1[i],2)
260. ph2[i] = round_up(ph2[i],2)
261. ph3[i] = round_up(ph3[i],2)
262. ph[i] = round_up(ph[i],2)
263. data_1a['盈余'] = ph
264.
265. # 信誉评级量化
266. level = list(data_1a['信誉评级'])
267. for i in range(len(level)):
268. if level[i] == 'A':
269. level[i] = 0.95
270. if level[i] == 'B':
271. level[i] = 0.7
272. if level[i] == 'C':
273. level[i] = 0.5
274. if level[i] == 'D':
275. level[i] = 0
276. data_1a['信誉评级']=level
277.
278. # 行业划分量化影响力
279. a = list(data_1a['企业类别'])
280. for i in range(len(a)):
281. if a[i] == 1:
282. a[i] = 0.15
283. if a[i] == 2:
284. a[i] = 0.3
285. if a[i] == 3:
286. a[i] = 0.55
287. data_1a['企业类别'] = a
288.
289. data_1a.rename(columns={'企业类别':'影响力'}, inplace = True)
290.
291. # 极小型指标转化为极大型指标
292. max(data_1a['作废发票数量'])#660.0
293. max(data_1a['负数发票数量'])#1450.7
294. data_1a['作废发票数量'] = 660.0-data_1a['作废发票数量']
295. data_1a['负数发票数量'] = 1450.70-data_1a['负数发票数量']
296.
297. #保存文件
298. data_1a.to_excel('附件一处理后的数据.xlsx')
程序二.问题一模型建立
1. import numpy as np
2. import pandas as pd
3. df_=pd.read_excel('附件一标准化后的数据.xlsx')
4.
5. df1 = df_.loc[:,['Z作废发票数量','Z负数发票数量','Z影响力','Z盈余','Z信誉评级']]
6. df1.columns = [0,1,2,3,4]
7.
8. # 信誉得分权重
9. from scipy.sparse.linalg import eigs
10. from numpy import array, hstack
11. a=array([[1,1/2,1/4,1/7,1/6],[2,1,1/3,1/6,1/5],[4,3,1,1/5,1/4],
12. [7,6,5,1,3],[6,5,4,1/3,1]])
13. L,V=eigs(a,1);
14. CR=(L-5)/4/1.12 #计算矩阵A的一致性比率
15. W=V/sum(V); print("最大特征值为:",L)
16. print("最大特征值对应的特征向量W=\n",W)
17. print("CR=",CR)
18.
19. # 信誉得分权重
20. a = np.array([[1,1/2,1/4,1/7,1/6],[2,1,1/3,1/6,1/5],[4,3,1,1/5,1/4],
21. [7,6,5,1,3],[6,5,4,1/3,1]])
22. a1 = np.zeros((5,5))
23. for i in range(len(a)):
24. for j in range(len(a[i])):
25. a1[i][j] = a[i][j]/(a[0][j]+a[1][j]+a[2][j]+a[3][j]+a[4][j])
26. print('a1:{}'.format(a1))
27.
28. v = np.zeros(5)
29. for i in range(len(a1)):
30. v[i] = sum(a1[i])
31. print('v:{}'.format(v))
32.
33. w = np.zeros(5)
34. for i in range(len(a1)):
35. w[i] = v[i]/sum(v)
36. w = w.reshape(5,1)
37. print('w:{}'.format(w))
38.
39. aw = np.dot(a,w)
40. print('aw:{}'.format(aw))
41.
42. l = 0
43. for i in range(len(aw)):
44. l+=aw[i]/(len(aw)*w[i])
45. print('l:{}'.format(l))
46.
47. ci = (l-len(aw))/(len(aw)-1)
48. print('ci:{}'.format(ci))
49.
50. ri = 1.12
51. cr = ci/ri
52. print('cr:{}'.format(cr))
53.
54. w = [0.0439,0.0660,0.1301,0.4804,0.2796]
55. score = [0 for index in range(123)]
56. for j in range(len(w)):
57. for i in range(123):
58. score[i] += df1[j][i]*w[j]
59.
60. sum(w) #检验权重之和为1
61.
62. df_['信贷安全得分'] = score
63.
64. # 删除信誉评级为D的客户并查看还有多少客户量
65. df = df_.drop(df_[(df_['信誉评级']==0)].index)
66. df.shape #99
67.
68. # 信誉得分
69. score1 = [0 for i in range(99)]
70. score2 = list(df['信誉评级'])
71. for i in range(len(score1)):
72. if score2[i] == 0.95:
73. score1[i] = 0.0465
74. if score2[i] == 0.7 or score2[i] == 0.5:
75. score1[i] = 0.0585
76. # if score2[i] == 0:
77. # score1[i] = nan
78. df['信誉年利率'] = score1
79.
80. # 信贷安全年利率
81. df2 = df.sort_values(by='信贷安全得分',ascending=False)
82.
83. # 利率函数计算
84. from sympy import *
85. x = symbols('x')
86. y = (x+0.304746)*((0.04-0.15)/(0.909247+0.304746))+0.15
87.
88. # 根据利率函数插值
89. x1 = list(df2['信贷安全得分'])
90. y1 = [0 for index in range(len(x1))]
91. for i in range(len(y1)):
92. y1[i] = y.subs(x,x1[i])
93. df2['信贷安全年利率'] = y1
94.
95. # 利率 保留4位小数(看附件三是四位小数)
96. rate = [0 for index in range(99)]
97. rate1 = list(df2['信誉年利率']);rate2 = list(df2['信贷安全年利率'])
98. for i in range(99):
99. rate[i] = rate1[i]*0.25+rate2[i]*0.75
100. rate[i] = round(rate[i],4)
101.
102. #E1,E4与实际差距较大,故而单独分析
103. rate[0] = 0.09
104. df2['年利率'] = rate
105. df2['年利率'] = df2['年利率']*100
106. df2.rename(columns={'年利率':'年利率(%)'}, inplace = True)
107.
108. df3 = df.loc[:,['Z信誉评级','Z盈余','Z进项发票金额']]
109. df3.columns = [0,1,2]
110.
111. # 信誉得分权重
112. a = np.array([[1,3,1/2],[1/3,1,1/5],[2,5,1]])
113. a1 = np.zeros((3,3))
114. for i in range(len(a)):
115. for j in range(len(a[i])):
116. a1[i][j] = a[i][j]/(a[0][j]+a[1][j]+a[2][j])
117. print('a1:{}'.format(a1))
118.
119. v = np.zeros(3)
120. for i in range(len(a1)):
121. v[i] = sum(a1[i])
122. print('v:{}'.format(v))
123.
124. w = np.zeros(3)
125. for i in range(len(a1)):
126. w[i] = v[i]/sum(v)
127. w = w.reshape(3,1)
128. print('w:{}'.format(w))
129.
130. aw = np.dot(a,w)
131. print('aw:{}'.format(aw))
132.
133. l = 0
134. for i in range(len(aw)):
135. l+=aw[i]/(len(aw)*w[i])
136. print('l:{}'.format(l))
137.
138. ci = (l-len(aw))/(len(aw)-1)
139. print('ci:{}'.format(ci))
140.
141. ri = 1.12
142. cr = ci/ri
143. print('cr:{}'.format(cr))
144.
145. # 额度得分
146. w = [0.3092,0.1096,0.5812]
147. score = [0 for index in range(99)]
148. for j in range(len(w)):
149. for i in range(99):
150. score[i] += df1[j][i]*w[j]
151. for i in range(len(score)):
152. score[i]+=1.4981055297610921
153.
154. df2['额度得分'] = score
155.
156. sum(w) #检验权重相加=1
157.
158. # 按额度得分排序
159. df3 = df2.sort_values(by='额度得分',ascending=False)
160.
161. # 企业
162. x = []
163. for i in range(1,100):
164. x.append(i)
165. # 额度得分
166. y = list(df3['额度得分'])
167.
168. #绘图 #我的编译器这块代码需要运行两次才能出图
169. import matplotlib.pyplot as plt
170. import matplotlib
171. from matplotlib import font_manager
172. my_font=font_manager.FontProperties(fname='C:\Windows\Fonts\msyh.ttc',size=10) #fname字体路径,本电脑
173. plt.plot(x,y)
174. #绘制网格
175. plt.grid(alpha=0.4)
176. #标题
177. plt.xlabel('企业代号',fontproperties=my_font)
178. plt.ylabel('额度得分',fontproperties=my_font)
179. plt.title('各企业额度得分',fontproperties=my_font,color='black',size=15)
180. #显示
181. plt.show()
182.
183. # 额度
184. M = symbols('M')
185. y_sum = sum(y)
186. y1 = [0 for index in range(99)]
187. for i in range(len(y)):
188. y1[i] = round(y[i]/y_sum,4)*M
189.
190. df3['额度(万)'] = y1
191.
192. df4 = df3.loc[:,['企业代号','企业名称','年利率(%)','额度(万)']]
193. df4 = df3.loc[:,['企业代号','信誉年利率','信贷安全年利率','额度得分','年利率(%)','额度(万)']]
194. df4 = pd.merge(df_,df4,how = 'left',on='企业代号')
195. df4.fillna(0)
196.
197. df4.to_excel('123家企业各项指标及得分.xlsx')
198.
199. # 结果
200. df5 = df4.loc[:,['企业代号','企业名称','年利率(%)','额度(万)']]
201. df5.to_excel('针对123家企业的贷款策略.xlsx')
程序三.附件二数据处理
1. #导包
2. import pandas as pd
3. import numpy as np
4.
5. #文件
6. file_path='302家无信贷记录企业的相关数据及产业分类.xlsx'
7. #读取sheet的名字
8. sheetName1='企业信息'
9. sheetName2='进项发票信息'
10. sheetName3='销项发票信息'
11. data_1=pd.read_excel(file_path,sheet_name=sheetName1)
12. data_2=pd.read_excel(file_path,sheet_name=sheetName2)
13. data_3=pd.read_excel(file_path,sheet_name=sheetName3)
14.
15. # 拷贝一下,老写错代码,导数据真慢
16. data_1a=data_1.copy(deep=True)
17. data_2a=data_2.copy(deep=True)
18. data_3a=data_3.copy(deep=True)
19.
20. #时间转化为整型以方便比较,分类
21. def time_trans(time_ch):
22. year = time_ch.split('-')[0]
23. month = time_ch.split('-')[1]
24. day = time_ch.split('-')[2].split(' ')[0]
25. new_date = (year + month + day )
26. return int(new_date)
27.
28. a = list(data_2a['开票日期'])
29. for i in range(len(data_2a['开票日期'])):
30. a[i] = str(a[i])
31. a[i] = time_trans(a[i])
32. data_2a['开票日期'] = a
33.
34. # 企业代号转化为整型
35. def num_trans(num_ch):
36. num = num_ch.split('E')[1]
37. return int(num)
38. a2 = list(data_2a['企业代号'])
39. for i in range(len(a2)):
40. a2[i] = num_trans(a2[i])
41.
42. data_2a['企业代号'] = a2
43.
44. data_21 = data_2a.loc[data_2a['开票日期']<20180101] #18年之前
45. data_22 = data_2a.loc[(data_2a['开票日期']>=20180101) & (data_2a['开票日期']<20190101)] #18年
46. data_23 = data_2a.loc[data_2a['开票日期']>=20190101] #19年及之后
47. # 18年之前
48. data_211 = data_21.loc[(data_21['发票状态']=='有效发票') & (data_21['价税合计']>0)]
49. data_212 = data_21.loc[data_21['发票状态']=='作废发票']
50. data_213 = data_21.loc[(data_21['发票状态']=='有效发票') & (data_21['价税合计']<0)]
51. # 18年
52. data_221 = data_22.loc[(data_22['发票状态']=='有效发票') & (data_22['价税合计']>0)]
53. data_222 = data_22.loc[data_22['发票状态']=='作废发票']
54. data_223 = data_22.loc[(data_22['发票状态']=='有效发票') & (data_22['价税合计']<0)]
55. # 19年及之后
56. data_231 = data_23.loc[(data_23['发票状态']=='有效发票') & (data_23['价税合计']>0)]
57. data_232 = data_23.loc[data_23['发票状态']=='作废发票']
58. data_233 = data_23.loc[(data_23['发票状态']=='有效发票') & (data_23['价税合计']<0)]
59.
60. jin211 = [0 for index in range(302)] #存放18年之前每家企业的进项有效发票金额
61. a211 = list(data_211['企业代号']);b211 = list(data_211['价税合计'])
62. for i in range(len(a211)):
63. for j in range(302):
64. if a211[i] == j+124:
65. jin211[j] += b211[i]
66.
67. jin212 = [0 for index in range(302)] #存放18年之前每家企业的进项作废发票数量
68. a212 = list(data_212['企业代号']);b212 = list(data_212['价税合计'])
69. for i in range(len(a212)):
70. for j in range(302):
71. if a212[i] == j+124:
72. jin212[j] += 1
73.
74. jin213 = [0 for index in range(302)] #存放18年之前每家企业的进项负数发票数量
75. a213 = list(data_213['企业代号']);b213 = list(data_213['价税合计'])
76. for i in range(len(a213)):
77. for j in range(302):
78. if a213[i] == j+124:
79. jin213[j] += 1
80.
81. jin221 = [0 for index in range(302)] #存放18年每家企业的进项有效发票金额
82. a221 = list(data_221['企业代号']);b221 = list(data_221['价税合计'])
83. for i in range(len(a221)):
84. for j in range(302):
85. if a221[i] == j+124:
86. jin221[j] += b221[i]
87.
88. jin222 = [0 for index in range(302)] #存放18年每家企业的进项作废发票数量
89. a222 = list(data_222['企业代号']);b222 = list(data_222['价税合计'])
90. for i in range(len(a222)):
91. for j in range(302):
92. if a222[i] == j+124:
93. jin222[j] += 1
94.
95. jin223 = [0 for index in range(302)] #存放18年每家企业的进项负数发票数量
96. a223 = list(data_223['企业代号']);b223 = list(data_223['价税合计'])
97. for i in range(len(a223)):
98. for j in range(302):
99. if a223[i] == j+124:
100. jin223[j] += 1
101.
102. jin231 = [0 for index in range(302)] #存放19年及之后每家企业的进项有效发票金额
103. a231 = list(data_231['企业代号']);b231 = list(data_231['价税合计'])
104. for i in range(len(a231)):
105. for j in range(302):
106. if a231[i] == j+124:
107. jin231[j] += b231[i]
108.
109. jin232 = [0 for index in range(302)] #存放19年及之后每家企业的进项作废发票数量
110. a232 = list(data_232['企业代号']);b232 = list(data_232['价税合计'])
111. for i in range(len(a232)):
112. for j in range(302):
113. if a232[i] == j+124:
114. jin232[j] += 1
115.
116. jin233 = [0 for index in range(302)] #存放19年及之后每家企业的进项负数发票数量
117. a233 = list(data_213['企业代号']);b233 = list(data_233['价税合计'])
118. for i in range(len(a233)):
119. for j in range(302):
120. if a233[i] == j+124:
121. jin233[j] += 1
122.
123. a2 = list(data_3a['企业代号'])
124. for i in range(len(a2)):
125. a2[i] = num_trans(a2[i])
126.
127. data_3a['企业代号'] = a2
128.
129. a = list(data_3a['开票日期'])
130. for i in range(len(data_3a['开票日期'])):
131. a[i] = str(a[i])
132.
133. for i in range(len(a)):
134. a[i] = time_trans(a[i])
135. data_3a['开票日期'] = a
136.
137. data_31 = data_3a.loc[data_3a['开票日期']<20180101] #18年之前
138. data_32 = data_3a.loc[(data_3a['开票日期']>=20180101) & (data_3a['开票日期']<20190101)] #18年
139. data_33 = data_3a.loc[data_3a['开票日期']>=20190101] #19年及之后
140. # 18年之前
141. data_311 = data_31.loc[(data_31['发票状态']=='有效发票') & (data_31['价税合计']>0)]
142. data_312 = data_31.loc[data_31['发票状态']=='作废发票']
143. data_313 = data_31.loc[(data_31['发票状态']=='有效发票') & (data_31['价税合计']<0)]
144. # 18年
145. data_321 = data_32.loc[(data_32['发票状态']=='有效发票') & (data_32['价税合计']>0)]
146. data_322 = data_32.loc[data_32['发票状态']=='作废发票']
147. data_323 = data_32.loc[(data_32['发票状态']=='有效发票') & (data_32['价税合计']<0)]
148. # 19年及之后
149. data_331 = data_33.loc[(data_33['发票状态']=='有效发票') & (data_33['价税合计']>0)]
150. data_332 = data_33.loc[data_33['发票状态']=='作废发票']
151. data_333 = data_33.loc[(data_33['发票状态']=='有效发票') & (data_33['价税合计']<0)]
152.
153. jin311 = [0 for index in range(302)] #存放18年之前每家企业的销项有效发票金额
154. a311 = list(data_311['企业代号']);b311 = list(data_311['金额'])
155. for i in range(len(a311)):
156. for j in range(302):
157. if a311[i] == j+124:
158. jin311[j] += b311[i]
159.
160. jin312 = [0 for index in range(302)] #存放18年之前每家企业的销项作废发票数量
161. a312 = list(data_312['企业代号']);b312 = list(data_312['金额'])
162. for i in range(len(a312)):
163. for j in range(302):
164. if a312[i] == j+124:
165. jin312[j] += 1
166.
167. jin313 = [0 for index in range(302)] #存放18年之前每家企业的销项负数发票数量
168. a313 = list(data_313['企业代号']);b313 = list(data_313['金额'])
169. for i in range(len(a313)):
170. for j in range(302):
171. if a313[i] == j+124:
172. jin313[j] += 1
173.
174. jin321 = [0 for index in range(302)] #存放18年每家企业的销项有效发票金额
175. a321 = list(data_321['企业代号']);b321 = list(data_321['金额'])
176. for i in range(len(a321)):
177. for j in range(302):
178. if a321[i] == j+124:
179. jin321[j] += b321[i]
180.
181. jin322 = [0 for index in range(302)] #存放18年每家企业的销项作废发票数量
182. a322 = list(data_322['企业代号']);b322 = list(data_322['金额'])
183. for i in range(len(a322)):
184. for j in range(302):
185. if a322[i] == j+124:
186. jin322[j] += 1
187.
188. jin323 = [0 for index in range(302)] #存放18年每家企业的销项负数发票数量
189. a323 = list(data_323['企业代号']);b323 = list(data_323['金额'])
190. for i in range(len(a323)):
191. for j in range(302):
192. if a323[i] == j+124:
193. jin323[j] += 1
194.
195. jin331 = [0 for index in range(302)] #存放19年及之后每家企业的销项有效发票金额
196. a331 = list(data_331['企业代号']);b331 = list(data_331['金额'])
197. for i in range(len(a331)):
198. for j in range(302):
199. if a331[i] == j+124:
200. jin331[j] += b331[i]
201.
202. jin332 = [0 for index in range(302)] #存放19年及之后每家企业的销项作废发票数量
203. a332 = list(data_332['企业代号']);b332 = list(data_332['金额'])
204. for i in range(len(a332)):
205. for j in range(302):
206. if a332[i] == j+124:
207. jin332[j] += 1
208.
209. jin333 = [0 for index in range(302)] #存放19年及之后每家企业的销项负数发票数量
210. a333 = list(data_333['企业代号']);b333 = list(data_333['金额'])
211. for i in range(len(a333)):
212. for j in range(302):
213. if a333[i] == j+124:
214. jin333[j] += 1
215.
216. a2 = list(data_1a['企业代号'])
217. for i in range(len(a2)):
218. a2[i] = num_trans(a2[i])
219.
220. data_1a['企业代号'] = a2
221.
222. # 根据企业代号排序
223. data_1a = data_1a.sort_values(['企业代号'], ascending = True)
224.
225. #精度问题,四舍五入保留两位小数
226. from decimal import Decimal, ROUND_HALF_UP
227. def round_up(number, num_digits):
228. """
229. 按指定位数对数值进行四舍五入。
230. :param number:要四舍五入的数字。
231. :param num_digits:要进行四舍五入运算的位数。
232. """
233. if num_digits > 0:
234. res = round_up(number * 10, num_digits - 1) / 10
235. else:
236. res = Decimal(number * 10 ** num_digits).quantize(Decimal('1'), rounding=ROUND_HALF_UP) * 10 ** -num_digits
237. return res
238.
239. jin21 = [0 for index in range(302)];jin22 = [0 for index in range(302)];jin23 = [0 for index in range(302)]
240. jin31 = [0 for index in range(302)];jin32 = [0 for index in range(302)];jin33 = [0 for index in range(302)]
241. for i in range(302):
242. jin21[i] = jin211[i]*0.2 +jin221[i]*0.3 + jin231[i]*0.5 #进项发票金额
243. jin22[i] = jin212[i]*0.2 +jin222[i]*0.3 + jin232[i]*0.5 + jin312[i]*0.2 +jin322[i]*0.3 + jin332[i]*0.5 #作废发票数量
244. jin23[i] = jin213[i]*0.2 +jin223[i]*0.3 + jin233[i]*0.5 + jin313[i]*0.2 +jin323[i]*0.3 + jin333[i]*0.5 #负数发票数量
245. jin31[i] = jin311[i]*0.2 +jin321[i]*0.3 + jin331[i]*0.5 #销项发票金额
246. for i in range(302):
247. jin21[i] = round_up(jin21[i],2)
248. jin31[i] = round_up(jin31[i],2)
249.
250. data_1a['进项发票金额'] = jin21
251. data_1a['作废发票数量'] = jin22
252. data_1a['负数发票数量'] = jin23
253. data_1a['销项发票金额'] = jin31
254.
255. # 进销平衡
256. ph1 = [0 for index in range(302)];ph2 = [0 for index in range(302)];ph3 = [0 for index in range(302)];ph = [0 for index in range(302)]
257. for i in range(len(ph1)):
258. ph1[i] = jin311[i]-jin211[i]
259. ph2[i] = jin321[i]-jin221[i]
260. ph3[i] = jin331[i]-jin231[i]
261. ph[i] = ph1[i]*0.2+ph2[i]*0.3+ph3[i]*0.5
262. for i in range(302):
263. ph1[i] = round_up(ph1[i],2)
264. ph2[i] = round_up(ph2[i],2)
265. ph3[i] = round_up(ph3[i],2)
266. ph[i] = round_up(ph[i],2)
267. data_1a['盈余'] = ph
268.
269. # 行业划分量化影响力
270. a = list(data_1a['企业类别'])
271. for i in range(len(a)):
272. if a[i] == 1:
273. a[i] = 0.2
274. if a[i] == 2:
275. a[i] = 0.8
276. if a[i] == 3:
277. a[i] = 0.2
278. if a[i] == 4:
279. a[i] = 0.45
280. if a[i] == 5:
281. a[i] = 0.65
282. if a[i] == 6:
283. a[i] = 0.55
284. if a[i] == 7:
285. a[i] = 0.4
286. data_1a['企业类别'] = a
287. data_1a.head()
288.
289. data_1a.rename(columns={'企业类别':'影响力'}, inplace = True)
290.
291. # 极小型指标转化为极大型指标
292. max(data_1a['作废发票数量'])#1077.9
293. max(data_1a['负数发票数量'])#179.1
294. data_1a['作废发票数量'] = 1077.9-data_1a['作废发票数量']
295. data_1a['负数发票数量'] = 179.1-data_1a['负数发票数量']
296.
297. data_1a.to_excel('附件二处理后的数据.xlsx')
程序四.问题二模型建立
1. #导包,文件
2. import numpy as np
3. import pandas as pd
4. df=pd.read_excel('附件二标准化后的数据.xlsx')
5.
6. df1 = df.loc[:,['Z作废发票数量','Z负数发票数量','Z盈余','Z影响力']]
7. df1.columns = [0,1,2,3]
8.
9. # 信誉得分权重
10. a = np.array([[1,1/2,1/7,1/4],[2,1,1/6,1/3],[7,6,1,4],[4,3,1/4,1]])
11. a1 = np.zeros((4,4))
12. for i in range(len(a)):
13. for j in range(len(a[i])):
14. a1[i][j] = a[i][j]/(a[0][j]+a[1][j]+a[2][j]+a[3][j])
15. print('a1:{}'.format(a1))
16.
17. v = np.zeros(4)
18. for i in range(len(a1)):
19. v[i] = sum(a1[i])
20. print('v:{}'.format(v))
21.
22. w = np.zeros(4)
23. for i in range(len(a1)):
24. w[i] = v[i]/sum(v)
25. w = w.reshape(4,1)
26. print('w:{}'.format(w))
27.
28. aw = np.dot(a,w)
29. print('aw:{}'.format(aw))
30.
31. l = 0
32. for i in range(len(aw)):
33. l+=aw[i]/(len(aw)*w[i])
34. print('l:{}'.format(l))
35.
36. ci = (l-len(aw))/(len(aw)-1)
37. print('ci:{}'.format(ci))
38.
39. ri = 1.12
40. cr = ci/ri
41. print('cr:{}'.format(cr))
42.
43. w = [0.0639,0.1012,0.6072,0.2277]
44. score = [0 for index in range(len(df1[1]))]
45. for j in range(len(w)):
46. for i in range(len(df1[1])):
47. score[i] += df1[j][i]*w[j]
48.
49. sum(w) #检验权重之和为1
50.
51. df['信贷安全得分'] = score
52.
53. # 信誉得分排序
54. df2 = df.sort_values(by='信贷安全得分',ascending=False)
55.
56. # 利率函数计算
57. from sympy import *
58. x = symbols('x')
59. y = (x+1.331047)*((0.04-0.15)/(1.504037+1.331047))+0.15
60.
61. # 根据利率函数插值
62. x1 = list(df2['信贷安全得分'])
63. y1 = [0 for index in range(len(x1))]
64. for i in range(len(y1)):
65. y1[i] = y.subs(x,x1[i])
66. y1[i] = round(y1[i],4)
67. for i in range(len(y1)):
68. if y1[i]<0.04:
69. y1[i] = 0.04
70. if y1[i]>0.15:
71. y1[i] = 0.15
72.
73. df2['年利率(%)'] = y1
74. df2['年利率(%)'] = df2['年利率(%)']*100
75.
76. df3 = df2.loc[:,['Z盈余','Z进项发票金额']]
77. df3.columns = [0,1]
78.
79. # 额度得分
80. w = [0.65,0.35]
81. score = [0 for index in range(len(df3))]
82. for j in range(len(w)):
83. for i in range(len(df3)):
84. score[i] += df3.iloc[i,j]*w[j]
85.
86. df2['额度得分'] = score
87.
88. sum(w) #检验权重相加=1
89.
90. # 按额度得分排序
91. df3 = df2.sort_values(by='额度得分',ascending=False)
92.
93. score = list(df3['额度得分'])
94. # print(score)
95. min(score) #-0.9139382826107219
96. for i in range(len(score)):
97. score[i] += 0.9139382826107219
98. # score
99. limit = [ 0 for i in range(len(score))]
100. for i in range(len(score)):
101. if score[i]>3:
102. limit[i] = 100
103. # print(score)
104. s = sum(score[5:])
105. for i in range(5,len(score)):
106. limit[i] = (score[i]/s)*9500
107.
108. for i in range(len(limit)):
109. if limit[i]>100:
110. limit[i] = 100
111. if limit[i]<10:
112. limit[i] = 0
113. limit[-5] = 10
114.
115. sum(limit) #检验总额度
116.
117. # 企业
118. x = []
119. for i in range(124,426):
120. x.append(i)
121. # 额度得分
122. y = list(df3['额度得分'])
123. #绘图
124. import matplotlib.pyplot as plt
125. import matplotlib
126. from matplotlib import font_manager
127. my_font=font_manager.FontProperties(fname='C:\Windows\Fonts\msyh.ttc',size=10) #fname字体路径,本电脑
128. plt.plot(x,y)
129. #绘制网格
130. plt.grid(alpha=0.4)
131. #标题
132. plt.xlabel('企业代号',fontproperties=my_font)
133. plt.ylabel('额度得分',fontproperties=my_font)
134. plt.title('各企业额度得分',fontproperties=my_font,color='black',size=15)
135. #显示
136. plt.show()
137.
138. df3['额度(万)'] = limit
139.
140. df3.to_excel('302家企业各项指标及得分.xlsx')
141.
142. # 结果
143. df4 = df3.loc[:,['企业代号','企业名称','年利率(%)','额度(万)']]
144. df4.to_excel('针对302家企业的贷款策略.xlsx')
程序五.疫情影响下的信贷策略
1. import pandas as pd
2. import numpy as np
3. data = pd.read_excel('302家企业各项指标及得分及细分产业.xlsx')
4.
5. classify = list(data['产业细分'])
6. influence = [0 for index in range(len(classify))]
7. add = [0 for index in range(len(classify))]
8. for i in range(len(classify)):
9. if classify[i] == 1:
10. influence[i] = -0.028 ; add[i] = 0.034
11. if classify[i] == 2:
12. influence[i] = -0.085 ; add[i] = 0.041
13. if classify[i] == 3:
14. influence[i] = -0.102 ; add[i] = 0.044
15. if classify[i] == 4:
16. influence[i] = -0.175 ; add[i] = 0.078
17. if classify[i] == 5:
18. influence[i] = -0.178 ; add[i] = 0.012
19. if classify[i] == 6:
20. influence[i] = -0.140 ; add[i] = 0.017
21. if classify[i] == 7:
22. influence[i] = -0.353 ; add[i] = -0.18
23. if classify[i] == 8:
24. influence[i] = -0.243 ; add[i] = 0.048
25. if classify[i] == 9:
26. influence[i] = -0.061 ; add[i] = 0.041
27. if classify[i] == 10:
28. influence[i] = 0.132 ; add[i] = 0.057
29. if classify[i] == 11:
30. influence[i] = -0.018 ; add[i] = 0.090
31. if classify[i] == 12:
32. influence[i] = -0.114 ; add[i] = -0.053
33. if classify[i] == 13:
34. influence[i] = -0.094 ; add[i] = -0.080
35. if classify[i] == 14:
36. influence[i] = -0.316 ; add[i] = -0.102
37. if classify[i] == 15:
38. influence[i] = -0.785 ; add[i] = -0.693
39. if classify[i] == 16:
40. influence[i] = -0.028 ; add[i] = 0.034
41. if classify[i] == 17:
42. influence[i] = -2.131 ; add[i] = -1.685
43.
44. data['波动'] = influence
45. data['同期增长'] = add
46.
47. data['信贷安全得分'] = data['信贷安全得分']*((data['波动']+1)*0.6+(data['同期增长']+1)*0.4)
48. data1 = data.sort_values(by='信贷安全得分',ascending=False)
49.
50. # 利率函数计算
51. from sympy import *
52. x = symbols('x')
53. y = (x+1.211785)*((0.04-0.15)/(1.393039+1.211785))+0.15
54.
55. # 根据利率函数插值
56. x1 = list(data1['信贷安全得分'])
57. y1 = [0 for index in range(len(x1))]
58. for i in range(len(y1)):
59. y1[i] = y.subs(x,x1[i])
60. y1[i] = round(y1[i],4)
61.
62. for i in range(len(y1)):
63. if y1[i]<0.0400: y1[i]=0.0400
64. if y1[i]>0.1500: y1[i]=0.1500
65.
66. data1['年利率'] = y1
67. data1['年利率'] = data1['年利率']*100
68. data1.rename(columns={'年利率':'年利率(%)'}, inplace = True)
69.
70. data1['额度得分'] = data1['额度得分']*((data1['波动']+1)*0.6+(data['同期增长']+1)*0.4)
71. data2 = data1.sort_values(by='额度得分',ascending=False)
72.
73. # 企业
74. x = []
75. for i in range(1,len(y1)+1): x.append(i)
76. # 额度得分
77. y = list(data2['额度得分'])
78. #绘图 #我的编译器这块代码需要运行两次才能出图
79. import matplotlib.pyplot as plt
80. import matplotlib
81. from matplotlib import font_manager
82. my_font=font_manager.FontProperties(fname='C:\Windows\Fonts\msyh.ttc',size=10) #fname字体路径,本电脑
83. plt.plot(x,y)
84. #绘制网格
85. plt.grid(alpha=0.4)
86. #标题
87. plt.xlabel('企业代号',fontproperties=my_font)
88. plt.ylabel('额度得分',fontproperties=my_font)
89. plt.title('各企业额度得分',fontproperties=my_font,color='black',size=15)
90. #显示
91. plt.show()
92.
93. score = list(data2['额度得分'])
94. # print(score)
95. # min(score) #-0.9685167812983371
96. for i in range(len(score)):
97. score[i] += 0.9685167812983371
98. # score
99. limit = [ 0 for i in range(len(score))]
100. for i in range(len(score)):
101. if score[i]>4:
102. limit[i] = 100
103. s = sum(score[2:])
104. for i in range(2,len(score)):
105. limit[i] = (score[i]/s)*9800
106.
107. for i in range(len(limit)):
108. if limit[i]>100: limit[i]=100
109. if limit[i]<10: limit[i]=10
110.
111. sum(limit) #检验总额度是否超过100万
112.
113. data2['额度']=limit
114. data2.rename(columns={'额度':'额度(万)'}, inplace = True)
115.
116. data3 = data2.loc[:,['企业代号','企业名称','产业细分','波动','同期增长','年利率(%)','额度(万)']]
117. data3['波动'] = data3['波动']*100
118. data3.rename(columns={'波动':'波动(%)'}, inplace = True)
119. data3['同期增长'] = data3['同期增长']*100
120. data3.rename(columns={'同期增长':'同期增长(%)'}, inplace = True)
121.
122. data3.to_excel('疫情影响下针对302家企业的贷款策略.xlsx')
思路有时间再写
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- kolla部署openstack all-in-one
网卡 ens37 192.168.140.200 桥接 ens33 192.168.56.3 桥接cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPEEthernet PROXY_METHODnone BROWSER_ONLYno #BOOTPROTOdhcp BOOTPROTOstatic DEFROUTEyes IPV4_FAILURE_FATALno IPV6INITyes IPV6_AUTOCONFyes IPV6_DEFROUTEye…...
2024/5/9 1:28:33 - 细数亚马逊常见的10大封号原因,你有中招过吗?
近期有关亚马逊封号的新闻层出不穷,也有许多国内卖家询问我如何进行申诉,事实上,大部分封号原因始终围绕着那几个问题。到目前为止,2020年亚马逊卖家的封号主要原因有: 1. 假货(22%) 2. 侵犯知识产权(20%) 3. 账户关…...
2024/5/8 11:53:52 - 音频基础知识详解
参考自:https://www.jianshu.com/p/86e1b1017564 https://blog.csdn.net/qq_25333681/article/details/90682989 1、引言 现实生活中,我们听到的声音都是时间连续的,我们称为这种信号叫模拟信号。模拟信号需要进行数字化以后才能在…...
2024/5/9 0:03:10 - (转载)Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!
转载自 Git使用教程 预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料)一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 工作原理 / 流程: Workspace:工作…...
2024/5/8 18:54:45 - vsftp 227 entering passive mode(xxx,xxx,xxx,xxx,xxx,xxx)
vsftp 被动模式下,内网连接登录没问题,外网链接报错:227 entering passive mode(xxx,xxx,xxx,xxx,xxx,xxx)(前面4个是内网IP,后面2个是端口) 配置添加参数: pasv_address #回传给客户端的IP …...
2024/5/8 13:58:22 - 成年人要学会为自己的人生负责
孔子要求人人都克己复礼,这样人人管好自己,不侵害别人,社会就美好了,所以有:非礼勿视,非礼勿听,非礼勿言,非礼勿动。 但是:如果人人都是好人的话,还要警察干嘛…...
2024/4/22 17:08:58 - 微信小程序 - 监听 TabBar 切换点击事件
在小程序开发的时候想要监听系统的 TabBar 切换点击事件,只需要在 TabBar 配置中存在的页面 .js 文件中加上下面函数即可: /** * 监听 TabBar 切换点击 */ onTabItemTap: function (item) {console.log(item) }注意:比如 TabBar 上有3个页面…...
2024/5/8 18:26:08 - 支付宝为刷脸支付消费者的资金安全保驾护航
当我们还在感慨二维码支付如何便捷时,“刷脸”支付已经悄然兴起,相对于二维码支付,“刷脸”支付真正让我们脱离了手机的操作步骤,只靠一张脸就可以解决“衣”、“食”、“住”、“行”,同时“刷脸”支付大大提高了收银…...
2024/4/22 1:41:29 - 6.流程控制
流程控制if-elseswitch-caseif-else else是忠实的备胎,永远等待着. /* 第一种: if(条件表达式){ } 第二种: if(){ }else{ } 第三种: if(){ }else if(){ }else if(){ }…else{ } 最后一个无条件接受. 条件表达式的结果都是boolean型. / / 说明: 1.else 结构是可选的. 2.针对…...
2024/5/8 18:40:34 - 基本网络结构理解
1. 只有交换机的简单网络 这个就是最简单的网络了,仅仅只有交换机,所有电脑都被交换机连起来就组成了一个小型的局域网,到这里还没有用到IP地址,因为IP是在第三层(网络层)的,而交换机是在第二层…...
2024/4/6 9:40:35 - OpenStack基金会 ( OSF)演进为开源基础设施基金会
OpenStack基金会 ( OSF) 正式演进为开源基础设施基金会(Open Infrastructure Foundation, OIF),开源社区将持续开发优秀的基础设施软件,满足实际生产应用中的各类需求。更名意味着基金会的使命、所涉及的领域及社区事务的进一步拓…...
2024/4/14 22:13:38 - 吃透消化这个-面试时跳槽不心慌P8级大佬整理在Github上45K+star手册,,
该文档在Github上收获45Kstar的Java核心神技(这参数,质量多高就不用我多说了吧)非常全面,包含基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分…...
2024/5/8 20:28:48 - FastDFS分布式文件系统搭建
背景:在集群部署环境下,随着团队发展,出现瓶颈: 服务器磁盘有上限,不够用出现单点故障 因此,创建一个分布式文件管理系统的新架构,希望有两个特点: 容量能够水平扩展服务之间能够实现负载均衡…...
2024/4/24 2:56:29 - 如果编程语言是一门武功绝学
武侠小说中,各路侠客绿林好汉都是从基本功开始一招一式学起,掌握了足够多的招式后,加之勤学苦练,量变引起质变,会有一天打开任督二脉顿悟出这些招式背后的哲学逻辑,成为一代宗师。在编程的学习过程中&#…...
2024/4/20 16:42:59 - Html和Css面试题总结
一、盒模型 1.盒模型由content、margin、padding、border四部分组成。 2.分别为标准盒子模型:widthmarginpaddingborder和怪异盒模型:widthmargin(width包含了padding和border) 3.盒子转换: border-box和content-bo…...
2024/4/17 11:57:24 - C++:如何在CentOS上编译envoy
目录 一、下载envoy和bazel 1.下载envoy-1.15.0 2.下载并安装bazel-3.1.0 二、准备编译环境 1.设置用户可执行sudo操作 2.创建交换分区 3.在Vmware中共享文件夹 三、准备编译软件 1.安装gcc开发工具 2.安装git和配置git 3.安装JDK 4.安装cmake 5.安装python3以上版…...
2024/4/30 2:53:29 - 设计CNN时的小技巧
YouTube视频 现在,我们有一个原始输入,它的尺寸为55,经过一次卷积之后,它得到了33的特征图,对于中间的绿色的小方块来说,它的感受野就是对应着最左边的33的输入。(感受野,又称recept…...
2024/4/21 10:23:30 - 一元线性回归
一元线性回归 回归主要用于预测数值型数据,根据观测到的数据设计一种模型,描述数据之间蕴含的关系。 回归的典型例子,就是通过给定的数据点拟合出最优的曲线,在这个例子中面积和房价之间的关系可以近似地表示成一根直线…...
2024/4/20 14:38:42 - SQLServer从一个表往另一个表插入数据并修改表名
SQLServer从一个表往另一个表插入数据 一、整表数据复制 #会自动创建新表 select * into 新表 from 旧表示例: 旧表如下:设置了主键自增,唯一约束 CREATE TABLE anneal_data(data_id int NOT NULL IDENTITY(1,1),component_sfc nvarchar(2…...
2024/5/8 5:45:28 - el-select选择器远程搜索有禁用项
根据要求用到select远程搜索功能,并且如果已经添加过得,禁止添加。 结果显示为: 前端页面代码为: <el-form-item label"SKU名称" prop"skuId"><el-select v-model"formData.skuId" filt…...
2024/4/29 9:09:40
最新文章
- 深度学习笔记_10YOLOv8系列自定义数据集实验
1、mydaya.yaml 配置方法 # 这里分别指向你训练、验证、测试的文件地址,只需要指向图片的文件夹即可。但是要注意图片和labels名称要对应 # 训练集、测试集、验证机文件路径,可以是分类好的TXT文件,也可以直接是图片文件夹路径 train: # t…...
2024/5/9 2:12:16 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/7 10:36:02 - MQ的作用及分类
概念: MQ(message queue),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一…...
2024/5/7 23:33:53 - 用html实现在页面底部养鱼的效果
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>在网页底部养鱼</title><link rel"stylesheet" href"./style.css"> </head> <body> <div id"fi…...
2024/5/7 1:08:12 - 416. 分割等和子集问题(动态规划)
题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义:dp[i][j]表示当背包容量为j,用前i个物品是否正好可以将背包填满ÿ…...
2024/5/8 19:32:33 - 【Java】ExcelWriter自适应宽度工具类(支持中文)
工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...
2024/5/7 22:31:36 - Spring cloud负载均衡@LoadBalanced LoadBalancerClient
LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon,直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件,我们讨论Spring负载均衡以Spring Cloud2020之后版本为主,学习Spring Cloud LoadBalance,暂不讨论Ribbon…...
2024/5/8 1:37:40 - TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案
一、背景需求分析 在工业产业园、化工园或生产制造园区中,周界防范意义重大,对园区的安全起到重要的作用。常规的安防方式是采用人员巡查,人力投入成本大而且效率低。周界一旦被破坏或入侵,会影响园区人员和资产安全,…...
2024/5/8 20:33:13 - VB.net WebBrowser网页元素抓取分析方法
在用WebBrowser编程实现网页操作自动化时,常要分析网页Html,例如网页在加载数据时,常会显示“系统处理中,请稍候..”,我们需要在数据加载完成后才能继续下一步操作,如何抓取这个信息的网页html元素变化&…...
2024/5/8 1:37:39 - 【Objective-C】Objective-C汇总
方法定义 参考:https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...
2024/5/7 16:57:02 - 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】🌏题目描述🌏输入格…...
2024/5/7 14:58:59 - 【ES6.0】- 扩展运算符(...)
【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数࿰…...
2024/5/8 20:58:56 - 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?
文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕,各大品牌纷纷晒出优异的成绩单,摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称,在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁,多个平台数据都表现出极度异常…...
2024/5/9 1:35:21 - Go语言常用命令详解(二)
文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令,这些命令可以帮助您在Go开发中进行编译、测试、运行和…...
2024/5/8 1:37:35 - 用欧拉路径判断图同构推出reverse合法性:1116T4
http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b,我们在 a i a_i ai 和 a i 1 a_{i1} ai1 之间连边, b b b 同理,则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然࿰…...
2024/5/7 16:05:05 - 【NGINX--1】基础知识
1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息,并安装一些有助于配置官方 NGINX 软件包仓库的软件包: apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...
2024/5/8 18:06:50 - Hive默认分割符、存储格式与数据压缩
目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限(ROW FORMAT)配置标准HQL为: ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...
2024/5/8 1:37:32 - 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法
文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中,传感器和控制器产生大量周…...
2024/5/9 1:42:21 - --max-old-space-size=8192报错
vue项目运行时,如果经常运行慢,崩溃停止服务,报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中,通过JavaScript使用内存时只能使用部分内存(64位系统&…...
2024/5/8 1:37:31 - 基于深度学习的恶意软件检测
恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞,例如可以被劫持的合法软件(例如浏览器或 Web 应用程序插件)中的错误。 恶意软件渗透可能会造成灾难性的后果,包括数据被盗、勒索或网…...
2024/5/8 1:37:31 - JS原型对象prototype
让我简单的为大家介绍一下原型对象prototype吧! 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,所以我们也称为原型对象…...
2024/5/8 12:44:41 - C++中只能有一个实例的单例类
C中只能有一个实例的单例类 前面讨论的 President 类很不错,但存在一个缺陷:无法禁止通过实例化多个对象来创建多名总统: President One, Two, Three; 由于复制构造函数是私有的,其中每个对象都是不可复制的,但您的目…...
2024/5/8 9:51:44 - python django 小程序图书借阅源码
开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 用户端: 登录注册(含授权登录) 首页显示搜索图书,轮播图࿰…...
2024/5/8 1:37:29 - 电子学会C/C++编程等级考试2022年03月(一级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...
2024/5/7 17:09:45 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57