1.语法:[表达式 for 变量 in 序列或迭代对象] 列表推导式在逻辑上相当于一个循环,但形式更加简洁 2.具体操作: ①简单举例
>>>list=[x*x for x inrange(10)]>>>print(list)[0,1,4,9,16,25,36,49,64,81]>>>print(sum(list))285
用循环实现其等价写法:
>>> vec =[[1,2,3],[4,5,6],[7,8,9]]>>>list=[num for elem in vec for num in elem]>>>print(list)[1,2,3,4,5,6,7,8,9]'''
在这个列表推导式中有两个循环,其中第一个循环为外循环,执行得慢;
第二个循环为内循环,执行得快。
'''#用循环实现其等价写法:
vec =[[1,2,3],[4,5,6],[7,8,9]]
result=[]for elem in vec:for num in elem:
result.append(num)print(result)
③过滤不符合条件的元素
在列表推导式中可以使用if子句来进行筛选,只在结果列表中保留符合条件的元素。
>>>list=[1,2,3,45,6,7,7,8,90,22]>>>list=[i for i inlistif i >10]#if条件判断>>>list[45,90,22]>>>list=[x*x if x%2!=0else x for x in[1,2,3,4,5]]#if-else条件判断>>>list[1,2,9,4,25]#已知成绩列表查找最高分学生
scores ={'zhangsan':11,"lisi":22,"wanngwu":33}
highest =max(scores.values())
highestperson =[name for name,score in scores.items()if score == highest]print(highestperson)#使用列表推导式查找列表中最大元素的位置>>>from random import randint
>>> x =[randint(1,10)for i inrange(10)]#randint(1,10)是在1-10之间随机生成一个数,后面range(10)的作用是循环10次>>> x
[2,6,5,9,7,4,8,3,1,5]>>> m =max(x)>>> m
9>>> index_l =[index for index,value inenumerate(x)if value == m]>>> index_l
[3]
④使用多个循环实现多序列元素的任意组合
>>> l =[(x,y)for x in[1,2,3]for y in[3,2,4]if x != y]>>> l
[(1,3),(1,2),(1,4),(2,3),(2,4),(3,2),(3,4)]'''
对于包含多个循环的列表推导式,一定要清楚多个循环的执行顺序或嵌套关系
'''
⑤使用列表推导式实现矩阵转置
>>> matrix =[[1,2,3],[4,5,6],[7,8,9]]>>> re_matrix =[[row[i]for row in matrix]for i inrange(3)]>>> re_matrix
[[1,4,7],[2,5,8],[3,6,9]]
⑥列表推导式中可以使用函数或复杂表达式
deff(v):if v%2==0:
v *=2else:
v +=1return v
print([f(v)for v in[-1,0,1,2,3]if v >0])print([v*2if v%2==0else v+1for v in[-1,0,1,2,3]if v >0])
⑦列表推导式支持文件对象迭代
>>> fp =open("D:\各种文件\课程设计\郑州十四五规划.txt",'r',encoding ='utf-8')>>>print([line for line in fp])#读取结果过长,省略>>> fp.close()
应用1:使用列表推导式生成100以内的所有素数 要求:一行代码干掉它!
>>>import math
>>> l =[p for p inrange(2,100)if0notin[p%d for d inrange(2,int(math.sqrt(p))+1)]]>>> l
[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97]
我可没作弊啊,核心代码确实就一行(傲娇 ) 应用2:实现矩阵转置
matrix =[[1,2,3,4],[5,6,7,8],[9,10,11,12]]print("原矩阵:",matrix)print("转置矩阵为:",[[row[i]for row in matrix]for i inrange(4)])
2.三元表达式
语法格式为: 表达式1 if 条件表达式 else 表达式2
当表达式返回True时,返回结果表达式1,否则返回结果表达式2。
三元表达式用于列表推导,过滤出列表中的偶数,如果是奇数则赋值None
>>> li =[1,2,3,4,5,6,7]>>>[i if i%2==0elseNonefor i in li][None,2,None,4,None,6,None]# 注意:三元表达式用于列表推导,要写在for循环前面
try:
a =int(input("输入数字:"))except Exception as e:print("发生了异常",e)finally:print("这条代码一定要执行!!")
num = a +10print("{}+10={}".format(a,num))
** 程序出现错误时,也一定会运行finally**
defdemo(f):try:
s = f +10return2except Exception as e:print("程序发生错误!",e)return1finally:print("释放资源")return0if __name__ =='__main__':
a = demo(input(">>>>:"))print(a)
mysql>describe class;+-------+--------------+------+-----+---------+----------------+| Field |Type|Null|Key|Default| Extra |+-------+--------------+------+-----+---------+----------------+| id |int|NO| PRI |NULL|auto_increment|| title |varchar(255)| YES ||NULL||+-------+--------------+------+-----+---------+----------------+
mysql>desc class;+-------+--------------+------+-----+---------+----------------+| Field |Type|Null|Key|Default| Extra |+-------+--------------+------+-----+---------+----------------+| id |int|NO| PRI |NULL|auto_increment|| title |varchar(255)| YES ||NULL||+-------+--------------+------+-----+---------+----------------+
mysql>desc banji;+-------+----------+------+-----+---------+-------+| Field |Type|Null|Key|Default| Extra |+-------+----------+------+-----+---------+-------+| id |int|NO||NULL||| name |char(10)| YES ||NULL||| age |int| YES ||NULL||| sex |char(10)| YES ||NULL||+-------+----------+------+-----+---------+-------+
mysql>select*from banji;+----+--------+------+------+| id | name | age | sex |+----+--------+------+------+|1| liuwei |24| nan |+----+--------+------+------+
6查询数据记录
mysql>select name,sex from banji where id=1;+--------+------+| name | sex |+--------+------+| liuwei | nan |+--------+------+
mysql>select*from banji limit2;+----+---------+------+------+| id | name | age | sex |+----+---------+------+------+|1| liuwei |24| nan ||2| xiaohua |14| mv |+----+---------+------+------+
9显示第一行后的前一行
mysql>select*from banji limit1,1;+----+---------+------+------+| id | name | age | sex |+----+---------+------+------+|2| xiaohua |14| mv |+----+---------+------+------+
mysql>select*from banji;+----+---------+------+------+| id | name | age | sex |+----+---------+------+------+|1| liuwei |24| nan ||2| xiaohua |14| nv |+----+---------+------+------+
mysql>desc banji2;+-------+----------+------+-----+---------+-------+| Field |Type|Null|Key|Default| Extra |+-------+----------+------+-----+---------+-------+| id |int|NO||NULL||| name |char(10)| YES ||NULL||| age |int| YES ||NULL||| sex |char(10)| YES ||NULL||+-------+----------+------+-----+---------+-------+
mysql>desc banji2;+---------+-------------+------+-----+--------------+-------+| Field |Type|Null|Key|Default| Extra |+---------+-------------+------+-----+--------------+-------+| id |int|NO||NULL||| name |char(10)| YES ||NULL||| age |int| YES ||NULL||| sex |char(10)| YES ||NULL||| address |varchar(50)| YES || 地址不详 ||+---------+-------------+------+-----+--------------+-------+
mysql>select*from banji2;+----+---------+------+------+--------------+| id | name | age | sex | address |+----+---------+------+------+--------------+|1| liuwei |24| nan | 地址不详 ||2| xiaohua |14| nv | 地址不详 |+----+---------+------+------+--------------+
3修改字段(列)名,添加唯一键
mysql>desc banji2;+---------+-------------+------+-----+--------------+-------+| Field |Type|Null|Key|Default| Extra |+---------+-------------+------+-----+--------------+-------+| id |int|NO||NULL||| name |char(10)| YES ||NULL||| age |int| YES ||NULL||| sex |char(10)| YES ||NULL||| address |varchar(50)| YES || 地址不详 ||+---------+-------------+------+-----+--------------+-------+
mysql>desc banji2;+-----------+----------+------+-----+---------+-------+| Field |Type|Null|Key|Default| Extra |+-----------+----------+------+-----+---------+-------+| id |int|NO||NULL||| name |char(10)| YES ||NULL||| age |int| YES ||NULL||| sex |char(10)| YES ||NULL||| myaddress |char(50)| YES ||NULL||+-----------+----------+------+-----+---------+-------+
4添加唯一键
mysql>desc banji2;+-----------+----------+------+-----+---------+-------+| Field |Type|Null|Key|Default| Extra |+-----------+----------+------+-----+---------+-------+| id |int|NO||NULL||| name |char(10)| YES ||NULL||| age |int| YES ||NULL||| sex |char(10)| YES ||NULL||| myaddress |char(50)| YES ||NULL||+-----------+----------+------+-----+---------+-------+
mysql>altertable banji2 change id tid int(5)uniquekey;
Query OK,0rows affected,1 warning (0.85 sec)
Records: 0 Duplicates: 0Warnings: 1
mysql>desc banji2;+-----------+----------+------+-----+---------+-------+| Field |Type|Null|Key|Default| Extra |+-----------+----------+------+-----+---------+-------+| tid |int| YES | UNI |NULL||| name |char(10)| YES ||NULL||| age |int| YES ||NULL||| sex |char(10)| YES ||NULL||| myaddress |char(50)| YES ||NULL||+-----------+----------+------+-----+---------+-------+
5删除地段:
mysql>desc banji2;+-----------+----------+------+-----+---------+-------+| Field |Type|Null|Key|Default| Extra |+-----------+----------+------+-----+---------+-------+| tid |int| YES | UNI |NULL||| name |char(10)| YES ||NULL||| age |int| YES ||NULL||| sex |char(10)| YES ||NULL||| myaddress |char(50)| YES ||NULL||+-----------+----------+------+-----+---------+-------+
mysql>desc banji2;+-------+----------+------+-----+---------+-------+| Field |Type|Null|Key|Default| Extra |+-------+----------+------+-----+---------+-------+| tid |int| YES | UNI |NULL||| name |char(10)| YES ||NULL||| age |int| YES ||NULL||| sex |char(10)| YES ||NULL||+-------+----------+------+-----+---------+-------+
6分组查询:
GROUP BY 语句根据一个或多个列对结果集进行分组。 在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。 语法: SELECT column_name, function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name;
mysql>SELECT*FROM employee_tbl;+----+--------+---------------------+--------+| id | name |date| signin |+----+--------+---------------------+--------+|1| 小明 |2016-04-2215:25:33|1||2| 小王 |2016-04-2015:25:47|3||3| 小丽 |2016-04-1915:26:02|2||4| 小王 |2016-04-0715:26:14|4||5| 小明 |2016-04-1115:26:40|4||6| 小明 |2016-04-0415:26:54|2|+----+--------+---------------------+--------+
mysql>SELECT name,SUM(signin)as signin_count FROM employee_tbl GROUPBY name WITH ROLLUP;+--------+--------------+| name | signin_count |+--------+--------------+| 小丽 |2|| 小明 |7|| 小王 |7||NULL|16|+--------+--------------+4rowsinset(0.00 sec)
六,方式
1内连接
mysql>select*from bb;+------+-------+------+| id | tname | sin |+------+-------+------+|1| zhao |5||2| qian |2||3| sun |3|+------+-------+------+3rowsinset(0.00 sec)
mysql>select*from aa;+------+----------+------+| id | name | age |+------+----------+------+|1| xiaohua |18||2| xioaming |19||3| xiaoliu |20||4| dongdong |21||5| xixi |22||6| qq |20|+------+----------+------+
mysql>select a.id ,a.name,b.sin from aa a innerjoin bb b on a.id = b.sin;+------+----------+------+| id | name | sin |+------+----------+------+|2| xioaming |2||3| xiaoliu |3||5| xixi |5|+------+----------+------+
2左连接
mysql>select a.id ,a.name,b.sin from aa a leftjoin bb b on a.id = b.sin;+------+----------+------+| id | name | sin |+------+----------+------+|1| xiaohua |NULL||2| xioaming |2||3| xiaoliu |3||4| dongdong |NULL||5| xixi |5||6| qq |NULL|+------+----------+------+
3右链接
mysql> select a.id ,a.name,b.sin from aa a right join bb b on a.id = b.sin;
+------+----------+------+
| id | name | sin |
+------+----------+------+
| 5 | xixi | 5 |
| 2 | xioaming | 2 |
| 3 | xiaoliu | 3 |
+------+----------+------+
import numpy as np
a = np.arange(0,16).reshape((2,8))
print(a)#行
print(a.T)#列
print('转为一维数组:',a.flatten())#转为一维数组
for i in a.flat:#转为一维数组后转置
print('转为一维数组后转置:',i)
'''
合并
'''
import numpy as np
a = np.array([1,1,1])
b = np.array([2,2,2])
print('上下合并:',np.vstack((a,b)))#上下合并
print('左右合并:',np.hstack((a,b)))#左右合并
上下合并: [[1 1 1]
[2 2 2]]
左右合并: [1 1 1 2 2 2]
import numpy as np
a = np.array([1,1,1])[:,np.newaxis]
b = np.array([2,2,2])[:,np.newaxis]
print(a)
print(b)
c = np.concatenate((a,b,a,b),axis=1)
print(c)
import numpy as np
import pandas as pd
s = pd.Series([1,3,6,np.nan,44,1])print('s',s)
datas = pd.date_range('20220719',periods=6)print('datas',datas)#第一种创建DataFrame
df = pd.DataFrame(np.random.randn(6,4),index=datas,columns=['a','b','c','d'])print('df',df)#第二种创建DataFrame
df2 = pd.DataFrame({'A':1,'B':pd.Series(1,index=list(range(4)),dtype='float32'),'C':np.array([3]*4,dtype='int32'),'D':pd.Timestamp('20220722'),'E':pd.Categorical(['test','train','test','train']),'F':'foo'})print('df2',df2)#类型,索引,值,列print(df2.dtypes,df2.index,df2.values,df2.columns)#详细信息print(df2.describe)#转置print(df2.T)#第排序print(df2.sort_index(axis=1,ascending =False))
s 0 1.0
1 3.0
2 6.0
3 NaN
4 44.0
5 1.0
dtype: float64
datas DatetimeIndex(['2022-07-19', '2022-07-20', '2022-07-21', '2022-07-22',
'2022-07-23', '2022-07-24'],
dtype='datetime64[ns]', freq='D')
df a b c d
2022-07-19 0.840357 1.290776 -0.673588 -1.964654
2022-07-20 1.781612 -0.197615 0.385255 -2.589242
2022-07-21 1.966526 1.967652 -1.248644 -0.754575
2022-07-22 0.331278 0.315541 0.322455 -1.057746
2022-07-23 0.851073 1.100561 -1.402137 0.397098
2022-07-24 0.315498 -1.640846 -0.546512 -0.514539
df2 A B C D E F
0 1 1.0 3 2022-07-22 test foo
1 1 1.0 3 2022-07-22 train foo
2 1 1.0 3 2022-07-22 test foo
3 1 1.0 3 2022-07-22 train foo
A int64
B float32
C int32
D datetime64[ns]
E category
F object
dtype: object Int64Index([0, 1, 2, 3], dtype='int64') [[1 1.0 3 Timestamp('2022-07-22 00:00:00') 'test' 'foo']
[1 1.0 3 Timestamp('2022-07-22 00:00:00') 'train' 'foo']
[1 1.0 3 Timestamp('2022-07-22 00:00:00') 'test' 'foo']
[1 1.0 3 Timestamp('2022-07-22 00:00:00') 'train' 'foo']] Index(['A', 'B', 'C', 'D', 'E', 'F'], dtype='object')
0 1 2 \
A 1 1 1
B 1.0 1.0 1.0
C 3 3 3
D 2022-07-22 00:00:00 2022-07-22 00:00:00 2022-07-22 00:00:00
E test train test
F foo foo foo
3
A 1
B 1.0
C 3
D 2022-07-22 00:00:00
E train
F foo
F E D C B A
0 foo test 2022-07-22 3 1.0 1
1 foo train 2022-07-22 3 1.0 1
2 foo test 2022-07-22 3 1.0 1
3 foo train 2022-07-22 3 1.0 1
'''
pandas数据选择
'''import numpy as np
import pandas as pd
datas = pd.date_range('20220719',periods=6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=datas,columns=['A','B','C','D'])print(df)print('________________________________________________')print(df['A'],df.A)#两种方法获取指定列print('________________________________________________')print(df[0:3],df['20220719':'20220722'])print('________________________________________________')#select by lable:locprint(df.loc['20220719'])#select by lable:loc(选取日期为20220719的一行)print(df.loc['20220720',['A','B']])#select by lable:loc(选取日期为20220720,列为A,B的元素)print('________________________________________________')#select by possitions :ilocprint(df.iloc[3])#第3行print(df.iloc[3,2])#第3行第2位print(df.iloc[1:3,2:4])#1-3行,2-4列print(df.iloc[[1,2,5],1:4])#第3行print('________________________________________________')print(df[df.A<8])
A B C D
2022-07-19 0 1 2 3
2022-07-20 4 5 6 7
2022-07-21 8 9 10 11
2022-07-22 12 13 14 15
2022-07-23 16 17 18 19
2022-07-24 20 21 22 23
________________________________________________
2022-07-19 0
2022-07-20 4
2022-07-21 8
2022-07-22 12
2022-07-23 16
2022-07-24 20
Freq: D, Name: A, dtype: int32 2022-07-19 0
2022-07-20 4
2022-07-21 8
2022-07-22 12
2022-07-23 16
2022-07-24 20
Freq: D, Name: A, dtype: int32
________________________________________________
A B C D
2022-07-19 0 1 2 3
2022-07-20 4 5 6 7
2022-07-21 8 9 10 11 A B C D
2022-07-19 0 1 2 3
2022-07-20 4 5 6 7
2022-07-21 8 9 10 11
2022-07-22 12 13 14 15
________________________________________________
A 0
B 1
C 2
D 3
Name: 2022-07-19 00:00:00, dtype: int32
A 4
B 5
Name: 2022-07-20 00:00:00, dtype: int32
________________________________________________
A 12
B 13
C 14
D 15
Name: 2022-07-22 00:00:00, dtype: int32
14
C D
2022-07-20 6 7
2022-07-21 10 11
B C D
2022-07-20 5 6 7
2022-07-21 9 10 11
2022-07-24 21 22 23
________________________________________________
A B C D
2022-07-19 0 1 2 3
2022-07-20 4 5 6 7
'''
pandas DataFrame合并
'''import numpy as np
import pandas as pd
df1 = pd.DataFrame(np.ones((3,4))*0,columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1,columns=['b','c','d','e'])'''join,['inner','outer']'''print(pd.concat([df1,df2],axis=0,join='outer'))#axis=0上下合并,ignore_index忽略原来的indexprint('________________________________________________')print(pd.concat([df1,df2],axis=0,join='inner',ignore_index='True'))#axis=0上下合并,ignore_index忽略原来的indexprint('________________________________________________')
a b c d e
0 0.0 0.0 0.0 0.0 NaN
1 0.0 0.0 0.0 0.0 NaN
2 0.0 0.0 0.0 0.0 NaN
0 NaN 1.0 1.0 1.0 1.0
1 NaN 1.0 1.0 1.0 1.0
2 NaN 1.0 1.0 1.0 1.0
________________________________________________
b c d
0 0.0 0.0 0.0
1 0.0 0.0 0.0
2 0.0 0.0 0.0
3 1.0 1.0 1.0
4 1.0 1.0 1.0
5 1.0 1.0 1.0
a b c d
0 0.0 0.0 0.0 0.0
1 0.0 0.0 0.0 0.0
2 0.0 0.0 0.0 0.0
3 1.0 1.0 1.0 1.0
4 1.0 1.0 1.0 1.0
5 1.0 1.0 1.0 1.0
________________________________________________
a b c d
0 0.0 0.0 0.0 0.0
1 0.0 0.0 0.0 0.0
2 0.0 0.0 0.0 0.0
3 1.0 2.0 3.0 4.0
C:\Users\Double\AppData\Local\Temp\ipykernel_13356\7792660.py:10: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
print(df1.append(df2,ignore_index=True))
C:\Users\Double\AppData\Local\Temp\ipykernel_13356\7792660.py:14: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
res= df4.append(s1,ignore_index=True)
'''
pandas DataFrame合并
'''import numpy as np
import pandas as pd
left = pd.DataFrame({'key':['k1','k2','k3','k4'],'A':['a1','a2','a3','a4'],'B':['b1','b2','b3','b4']})
right = pd.DataFrame({'key':['k1','k2','k3','k4'],'C':['C1','C2','C3','C4'],'D':['D1','D2','D3','D4']})print(left)print('____________________')print(right)print('____________________')print(pd.merge(left,right,on='key'))
key A B
0 k1 a1 b1
1 k2 a2 b2
2 k3 a3 b3
3 k4 a4 b4
____________________
key C D
0 k1 C1 D1
1 k2 C2 D2
2 k3 C3 D3
3 k4 C4 D4
____________________
key A B C D
0 k1 a1 b1 C1 D1
1 k2 a2 b2 C2 D2
2 k3 a3 b3 C3 D3
3 k4 a4 b4 C4 D4
'''
pandas DataFrame合并
'''import numpy as np
import pandas as pd
left = pd.DataFrame({'key1':['k1','k4','k2','k2'],'key2':['k2','k1','k2','k1'],'A':['a1','a2','a3','a4'],'B':['b1','b2','b3','b4']})
right = pd.DataFrame({'key1':['k2','k1','k2','k2'],'key2':['k2','k2','k2','k1'],'C':['C1','C2','C3','C4'],'D':['D1','D2','D3','D4']})print(left)print('____________________')print(right)print('____________________')#how=['left','right','outer','inner']print(pd.merge(left,right,on=['key1','key2'],how='right'))print('____________________')print(pd.merge(left,right,on=['key1','key2'],how='right',indicator=True))print('____________________')print(pd.merge(left,right,left_index=True,right_index=True,how='right',indicator=True))print('____________________')
key1 key2 A B
0 k1 k2 a1 b1
1 k4 k1 a2 b2
2 k2 k2 a3 b3
3 k2 k1 a4 b4
____________________
key1 key2 C D
0 k2 k2 C1 D1
1 k1 k2 C2 D2
2 k2 k2 C3 D3
3 k2 k1 C4 D4
____________________
key1 key2 A B C D
0 k2 k2 a3 b3 C1 D1
1 k1 k2 a1 b1 C2 D2
2 k2 k2 a3 b3 C3 D3
3 k2 k1 a4 b4 C4 D4
____________________
key1 key2 A B C D _merge
0 k2 k2 a3 b3 C1 D1 both
1 k1 k2 a1 b1 C2 D2 both
2 k2 k2 a3 b3 C3 D3 both
3 k2 k1 a4 b4 C4 D4 both
____________________
key1_x key2_x A B key1_y key2_y C D _merge
0 k1 k2 a1 b1 k2 k2 C1 D1 both
1 k4 k1 a2 b2 k1 k2 C2 D2 both
2 k2 k2 a3 b3 k2 k2 C3 D3 both
3 k2 k1 a4 b4 k2 k1 C4 D4 both
____________________
'''
pandas 图像
'''import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data =pd.Series(np.random.randn(1000),index=np.arange(1000))
data =data.cumsum()
data.plot()
plt.show()
import numpy as np
import matplotlib.pyplot as plt
index = np.arange(4)
BJ =[54,23,76,43]
SH =[44,11,24,66]
bar_width =0.3
plt.bar(index,BJ,bar_width,color='b')
plt.bar(index+bar_width,SH,bar_width,color='r')#'index+bar_width'表示在横坐标方向平移了一个width宽度
plt.show()
import numpy as np
import matplotlib.pyplot as plt
index = np.arange(4)
BJ =[54,23,76,43]
SH =[44,11,24,66]
bar_width =0.3
plt.bar(index,BJ,bar_width,color='b')
plt.bar(index,SH,bar_width,color='r',bottom=BJ)#'index+bar_width'表示在纵坐标方向平移了一个width宽度
plt.show()
import numpy as np
import matplotlib.pyplot as plt
mu =100
sigma =20
x = mu +sigma * np.random.randn(2000)print(x)
plt.hist(x,bins=10,color='red',edgecolor='k')#bins-十个数据 color-红色 edgecolor-边框颜色
plt.show()
import numpy as np
import matplotlib.pyplot as plt
mu =100
sigma =20
x = mu +sigma * np.random.randn(2000)print(x)
plt.hist(x,bins=50,color='green',edgecolor='k')#bins-十个数据 color-红色 edgecolor-边框颜色
plt.show()
import numpy as np
import matplotlib.pyplot as plt
mu =100
sigma =20
x = mu +sigma * np.random.randn(200000)print(x)
plt.hist(x,bins=100,color='red',edgecolor='k')#bins-十个数据 color-红色 edgecolor-边框颜色
plt.show()
import numpy as np
import matplotlib.pyplot as plt
x = np.random.randn(1000)+2
y = np.random.randn(1000)+3
plt.hist2d(x,y,bins=40)# plt.hist2d(x,y,bins=40) 双变量直方图
plt.show()
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(100)
data = np.random.normal(size=1000,loc=0,scale=1)
plt.boxplot(data,sym='o',whis=1.5)
plt.show()
r 读,文件不存在则报错 w 写,若文件存在则覆盖重写,若文件不存在则新建 a 写,若文件不存在,则新建;如果文件存在,则在文件尾追加要写的内容 r+ 读写,文件不存在则报错 w+ 读写,若文件存在则覆盖重写,若文件不存在则新建 a+ 读写,若文件不存在,则新建;如果文件存在,则在文件尾追加要写的内容 b 以二进制模式打开文件
Task not serializable是Spark开发过程最令人头疼的问题之一,这里记录下出现这个问题的两个实例,一个是自己遇到的,另一个是stackoverflow上看到。等有时间了再仔细探究出现Task not serialiazable的各种原因以及出现问题后如何快速定位问题的所在,至少目前阶段碰到此类问题,没有什么章法
1.
package spark.exampl
mysql 查看当前正在执行的操作,即正在执行的sql语句的方法为:
show processlist 命令
mysql> show global status;可以列出MySQL服务器运行各种状态值,我个人较喜欢的用法是show status like '查询值%';一、慢查询mysql> show variab
1. 只有Map任务的Map Reduce Job
File System Counters
FILE: Number of bytes read=3629530
FILE: Number of bytes written=98312
FILE: Number of read operations=0
FILE: Number of lar
import java.util.LinkedList;
import java.util.List;
import ljn.help.*;
public class BTreeLowestParentOfTwoNodes {
public static void main(String[] args) {
/*
* node data is stored in
本文介绍Java API 中 Date, Calendar, TimeZone和DateFormat的使用,以及不同时区时间相互转化的方法和原理。
问题描述:
向处于不同时区的服务器发请求时需要考虑时区转换的问题。譬如,服务器位于东八区(北京时间,GMT+8:00),而身处东四区的用户想要查询当天的销售记录。则需把东四区的“今天”这个时间范围转换为服务器所在时区的时间范围。
入口脚本
入口脚本是应用启动流程中的第一环,一个应用(不管是网页应用还是控制台应用)只有一个入口脚本。终端用户的请求通过入口脚本实例化应用并将将请求转发到应用。
Web 应用的入口脚本必须放在终端用户能够访问的目录下,通常命名为 index.php,也可以使用 Web 服务器能定位到的其他名称。
控制台应用的入口脚本一般在应用根目录下命名为 yii(后缀为.php),该文