精华内容
下载资源
问答
  • Top-Gun-2--Maverick--Jogo-em-C
  • 演示.afterburner.topgun.fx afterburner 的 topgun 分支演示项目 使用最新的 JDK 8 使用 mvn clean install 构建项目 使用 java -jar ./target/[project.artifactId]-app.jar 启动应用程序
  • 语言:English,slovenský 您喜欢射击游戏,还是喜欢火柴人游戏? 这款游戏是为您打造的! 在操场上进入并扮演最棒的火柴人 您喜欢射击游戏,还是喜欢火柴人游戏? 这款游戏是为您打造的! 在操场上进入并扮演最佳...
  • 2015年高中英语VOA习惯用语第376讲topgun素材
  • 数据来源为kaggle:https://www.kaggle.com/jameslko/gun-violence-data 主要分析13-18年美国枪支暴力事件的特征,以及使用时间序列预测下一年枪支暴力事件发生数量。 主要用到以下数据包 Basemap是python中一个...

    数据来源为kaggle:https://www.kaggle.com/jameslko/gun-violence-data
    主要分析13-18年美国枪支暴力事件的特征,以及使用时间序列预测下一年枪支暴力事件发生数量。

    主要用到以下数据包
    Basemap是python中一个利用地图的库
    plotly是开挂的作图神器,可以供js, python, R, DB等使用
    Seaborn是基于matplotlib的python数据可视化库,提供更高层次的API封装,使用起来更加方便快捷。
    Fbprophet :facebook开源的时间序列预测框架prophet,目前支持R语言和python语言。托管在github上:https://github.com/facebookincubator/prophet
    wordcloud 生成词云
    nltk.corpus 自带词袋中的停用词表去英文停用词

    导入数据包

    #数据基础操作
    import pandas as pd # package for high-performance, easy-to-use data structures and data analysis
    import numpy as np # fundamental package for scientific computing with Python
    #画图
    import matplotlib
    import matplotlib.pyplot as plt # for plotting
    import seaborn as sns # for making plots with seaborn
    color = sns.color_palette()
    from plotly.offline import init_notebook_mode, iplot,plot
    init_notebook_mode(connected=True)
    import plotly.graph_objs as go
    
    import squarify
    from numpy import array
    from matplotlib import cm
    
    '''
    数据处理包
    '''
    from sklearn import preprocessing
    import warnings
    warnings.filterwarnings("ignore")
    
    from nltk.corpus import stopwords
    from textblob import TextBlob
    import datetime as dt
    import warnings
    import string
    import time
    stop_words = list(set(stopwords.words('english')))
    warnings.filterwarnings('ignore')
    punctuation = string.punctuation

    查看数据

    df=pd.read_csv('gun-violence-data_01-2013_03-2018.csv',parse_dates = ['date'])
    df.head()

    这里写图片描述

    数据集维度

    #数据集维度
    df.shape
    #(239677, 29)

    数据为空的数量

    #数据为空的数量
    df.isnull().sum()

    这里写图片描述
    可以看出某些特征中空值特别多,但我们后面又没有用到,所以就不管它了。

    数据预处理

    #增加特征
    # Create some additional features
    
    df['year'] = df['date'].dt.year
    df['month'] = df['date'].dt.month
    df['monthday'] = df['date'].dt.day
    df['weekday'] = df['date'].dt.weekday
    df['loss'] = df['n_killed'] + df['n_injured']
    
    try :
        df.drop(['incident_id', 'incident_url', 'source_url', 'incident_url_fields_missing', 'sources','participant_name'], axis=1, inplace=True)
        #去掉2013年数据
        df=df.loc[df['date'].dt.year!=2013]
    except :
        print('process finish')
    
    df.head()

    这里写图片描述
    将时间分成年、月、日,并把受伤和死亡人数求和,方便后面的运算。因为在后面的分析中还发现2013年数据特别少,直觉去掉13年数据后进行分析 :)

    一、数据分析

    1.1暴乱冲突中使用过哪些枪支?

    df['gun_type_parsed'] = df['gun_type'].fillna('0:Unknown')
    gt = df.groupby(by=['gun_type_parsed']).agg({'n_killed': 'sum', 'n_injured' : 'sum', 'state' : 'count'}).reset_index().rename(columns={'state':'count'})
    
    results = {}
    for i, each in gt.iterrows():
        wrds = each['gun_type_parsed'].split("||")
        for wrd in wrds:
            if "Unknown" in wrd:
                continue
            wrd = wrd.replace("::",":").replace("|1","")
            gtype = wrd.split(":")[1]
            if gtype not in results: 
                results[gtype] = {'killed' : 0, 'injured' : 0, 'used' : 0}
            results[gtype]['killed'] += each['n_killed']
            results[gtype]['injured'] +=  each['n_injured']
            results[gtype]['used'] +=  each['count']
    
    gun_names = list(results.keys())
    used = [each['used'] for each in list(results.values())]
    killed = [each['killed'] for each in list(results.values())]
    injured = [each['injured'] for each in list(results.values())]
    danger = []
    for i, x in enumerate(used):
        danger.append((killed[i] + injured[i]) / x)
    
    trace1 = go.Bar(x=gun_names, y=used, name='SF Zoo', orientation = 'v',
        marker = dict(color = '#EEE8AA', 
            line = dict(color = '#EEE8AA', width = 1) ))
    data = [trace1]
    layout = dict(height=400, title='Which guns have been used?', legend=dict(orientation="h"));
    fig = go.Figure(data=data, layout=layout)
    iplot(fig, filename='枪支使用情况统计')

    这里写图片描述

    可以发现,手枪在枪击事件中用的最多,每种枪的使用频率也清晰可见。

    1.2不同地区枪支暴力事件

    #时间格式的转换
    df_year=df.groupby(['year'])['n_killed','n_injured'].agg('sum')
    
    states_df = df['state'].value_counts()
    
    statesdf = pd.DataFrame()
    statesdf['state'] = states_df.index
    statesdf['counts'] = states_df.values
    
    scl = [[0.0, 'rgb(242,240,247)'],[0.2, 'rgb(218,218,235)'],[0.4, 'rgb(188,189,220)'],\
                [0.6, 'rgb(158,154,200)'],[0.8, 'rgb(117,107,177)'],[1.0, 'rgb(84,39,143)']]
    
    state_to_code = {'District of Columbia' : 'dc','Mississippi': 'MS', 'Oklahoma': 'OK', 'Delaware': 'DE', 'Minnesota': 'MN', 'Illinois': 'IL', 'Arkansas': 'AR', 'New Mexico': 'NM', 'Indiana': 'IN', 'Maryland': 'MD', 'Louisiana': 'LA', 'Idaho': 'ID', 'Wyoming': 'WY', 'Tennessee': 'TN', 'Arizona': 'AZ', 'Iowa': 'IA', 'Michigan': 'MI', 'Kansas': 'KS', 'Utah': 'UT', 'Virginia': 'VA', 'Oregon': 'OR', 'Connecticut': 'CT', 'Montana': 'MT', 'California': 'CA', 'Massachusetts': 'MA', 'West Virginia': 'WV', 'South Carolina': 'SC', 'New Hampshire': 'NH', 'Wisconsin': 'WI', 'Vermont': 'VT', 'Georgia': 'GA', 'North Dakota': 'ND', 'Pennsylvania': 'PA', 'Florida': 'FL', 'Alaska': 'AK', 'Kentucky': 'KY', 'Hawaii': 'HI', 'Nebraska': 'NE', 'Missouri': 'MO', 'Ohio': 'OH', 'Alabama': 'AL', 'Rhode Island': 'RI', 'South Dakota': 'SD', 'Colorado': 'CO', 'New Jersey': 'NJ', 'Washington': 'WA', 'North Carolina': 'NC', 'New York': 'NY', 'Texas': 'TX', 'Nevada': 'NV', 'Maine': 'ME'}
    statesdf['state_code'] = statesdf['state'].apply(lambda x : state_to_code[x])
    
    data = [ dict(
            type='choropleth',
            colorscale = scl,
            autocolorscale = False,
            locations = statesdf['state_code'],
            z = statesdf['counts'],
            locationmode = 'USA-states',
            text = statesdf['state'],
            marker = dict(
                line = dict (
                    color = 'rgb(255,255,255)',
                    width = 2
                ) ),
            colorbar = dict(
                title = "Gun Violence Incidents")
            ) ]
    
    layout = dict(
            title = 'State wise number of Gun Violence Incidents',
            geo = dict(
                scope='usa',
                projection=dict( type='albers usa' ),
                showlakes = True,
                lakecolor = 'rgb(255, 255, 255)'),
                 )
    
    fig = dict( data=data, layout=layout )
    iplot( fig, filename='不同地区枪支暴力事件' )

    这里写图片描述

    可以清晰的看到哪个州发生枪击暴力事件的数量最多

    1.3枪支发生年份统计

    df_year.head(1)
    df_year.plot(figsize=(10,8))
    plt.show()

    这里写图片描述

    1.4枪支暴力冲突数量最多的前20个州

    temp = df["state"].value_counts().head(20)
    #temp.iplot(kind='bar', xTitle = 'State name', yTitle = "No. of incidents", title = 'Top 20 States with highest number of Gun Violence',color="Red")trace1
    
    trace_top20=go.Bar(x=temp.index, y=temp.values)
    data=[trace_top20]
    iplot(data,filename='枪支暴力冲突数量最多的前20个州')

    这里写图片描述
    此处去掉了13年数据

    1.5每个州在枪击事件中受伤+死亡人数统计

    df['loss'] = df['n_killed'] + df['n_injured']
    statdf = df.reset_index().groupby(by=['state']).agg({'loss':'sum', 'year':'count'}).rename(columns={'year':'count'})
    statdf['state'] = statdf.index
    
    trace1 = go.Bar(
        x=statdf['state'],
        y=statdf['count'],
        name='Count of Incidents',
        marker=dict(color='rgb(255,10,225)'),
        opacity=0.6
    )
    trace2 = go.Bar(
        x=statdf['state'],
        y=statdf['loss'],
        name='Total Loss',
        marker=dict(color='rgb(58,22,225)'),
        opacity=0.6
    )
    
    data = [trace1, trace2]
    layout = go.Layout(
        barmode='group',
        margin=dict(b=150),
        legend=dict(dict(x=-.1, y=1.2)),
        title = 'State wise number of Gun Violence Incidents and Total Loss',
    )
    
    fig = go.Figure(data=data, layout=layout)
    iplot(fig, filename='grouped-bar')

    这里写图片描述

    先跳过1.6哈~详细的可以看github上的源码哈,地址在文章末尾!

    1.7枪击事件发生地点统计

    from PIL import Image 
    from wordcloud import WordCloud, STOPWORDS
    mask = np.array(Image.open('gun2.jpg'))
    txt = " ".join(df['location_description'].dropna())
    wc = WordCloud(mask=mask, max_words=1200, stopwords=STOPWORDS, colormap='copper', background_color='White').generate(txt)
    plt.figure(figsize=(16,18))
    plt.imshow(wc)
    plt.axis('off')
    plt.title('');
    plt.show()

    这里写图片描述

    枪击事件多发在公寓,公园,高校,机场等地,这是一个很有意思的功能, 主要使用WordCloud, STOPWORDS两个库来表示出现频率最高的地点,词云的展示方式也比较好玩。

    这里先跳过分析的一部分,详细代码看下面github链接哦

    二、数据挖掘

    2.1预测有多少枪支暴力仍然会发生

    先打印2018年已有的数据的时间序列

    df_18=df.ix[df['year']==2018]
    df_ts=df_18[['n_killed','date']]
    df_ts.index=df_18['date']
    df_ts['n_killed'].plot(figsize=(15,6), color="green")
    plt.xlabel('Year')
    plt.ylabel('No. of Deaths')
    plt.title("Death due to Gun Violence Time-Series Visualization")
    plt.show()

    这里写图片描述

    使用facebook开源的fbprophet框架中的Prophet来进行时间序列分析,还可以显示分析的周效应等细节信息,是一个非常好用的框架。

    from fbprophet import Prophet
    sns.set(font_scale=1) 
    df_date_index = df_18[['date','n_killed']]
    df_date_index = df_date_index.set_index('date')
    df_prophet = df_date_index.copy()
    df_prophet.reset_index(drop=False,inplace=True)
    df_prophet.columns = ['ds','y']
    
    m = Prophet()
    m.fit(df_prophet)
    future = m.make_future_dataframe(periods=365,freq='D')
    forecast = m.predict(future)
    fig = m.plot(forecast)
    plt.show()

    这里写图片描述

    打印预测的详细趋势

    m.plot_components(forecast);
    plt.show()

    这里写图片描述

    预计2018年的枪击事件数量仍然呈上升趋势,具体在星期五、星期六有较强的上升趋势,应注意防范

    可能会出现的问题及解决方案

    1.pip install XXX报错:

    parse() got an unexpected keyword argument 'transport_encoding'

    解决:

    conda install pip

    2.No matching distribution found for mpl_toolkits
    解决:

    pip install --upgrade matplotlib

    3.下载停用词表出错

    Resource 'corpora/stopwords.zip/stopwords/' not found.  Please
      use the NLTK Downloader to obtain the resource:  >>>
      nltk.download()
      Searched in:
        - 'C:\\Users\\liang/nltk_data'
        - 'C:\\nltk_data'
        - 'D:\\nltk_data'
        - 'E:\\nltk_data'
        - 'j:\\Anaconda3\\nltk_data'
        - 'j:\\Anaconda3\\lib\\nltk_data'
        - 'C:\\Users\\liang\\AppData\\Roaming\\nltk_data'

    解决方案:

    nltk.download("stopwords")

    成功提示:

    [nltk_data] Downloading package stopwords to
    [nltk_data] C:\Users\liang\AppData\Roaming\nltk_data...
    [nltk_data] Unzipping corpora\stopwords.zip.
    Out[7]:
    True

    4.去掉DataFrame中某个特征里面符合某条件的数据(如去掉“年份”中为“2013”的数据)
    解决方法:
    使用df=df.loc[年份=2013]

    注:df.iloc[]可以很方便的截取要是用哪些数据
    如df.iloc[:, 1:] 表示使用所有行,第一列以后的数据


    github源码地址:
    https://github.com/LIANGQINGYUAN/GunViolence_DataMining

    欢迎Star~

    展开全文
  • Debian Gun/linux基本用法

    2021-02-07 17:33:02
    mount -t 文件系统类型 设备路经 访问路经 18.chmod *** 文件名 改文件的写读执行权限 19.diff 文件名 文件名 比较文件 20.top 动态 ps –aux 静态 pstree 进程树查看系统进程 21. 程序名 & 后台运行程序 fg 把后台...

    添加软件源:

    vim /etc/apt/sources.list

    在文本中添加如下内容:

    deb http://mirrors.163.com/debian/ stretch main non-free contrib

    deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib

    deb http://mirrors.163.com/debian/ stretch-backports main non-free contrib

    deb-src http://mirrors.163.com/debian/ stretch main non-free contrib

    deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib

    deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib

    deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib

    deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib

    更新系统:

    apt-get update

    apt-get upgrade

    同步时间:

    apt-get install ntpdate -y    安装时间同步软件

    ntpdate time.windows.com    同步时间

    dpkg-reconfigure tzdata    更改时区,重启后生效

    设置系统语言:

    apt-get install locales

    dpkg-reconfigure locales    本地化设置,原本已经有en_US.UTF-8,要追加选中zh_CN.UTF-8

    在Debian 9上安装中文输入法

    apt install fcitx

    apt install fcitx-googlepinyin

    apt install fcitx-googlepinyin fcitx-pinyin fcitx-sunpinyin

    远程连接软件Rdesktop:

    sudo apt-get install rdesktop

    目标计算机如果是Windows,需要去掉“仅允许运行使用网络级别身份认证的远程桌面计算机的连接”

    使用方法:

    1.rdesktop -f 192.168.X.XXX    这是全屏的,退出全屏的快捷键是ctrl+alt+enter

    2.rdesktop -g 1366x768  192.168.X.XXX    这是指定分辨率的

    配置共享服务Samba:

    su    登录root

    apt-get install samba    安装samba

    vim /etc/samba/smb.conf    在文本末端添加以下内容:

    [Cong's shares]

    path=/home/cycong/shares

    browsable=yes

    writable=yes

    guest ok=yes

    read only=no

    [Cong's files]

    path=/home/cycong/privates

    available=yes

    browsable=yes

    writable=yes

    valid users=samba

    public=yes

    ------------------------------------------------------------------------------

    sudo mkdir /home/cycong/shares

    sudo mkdir /home/cycong/privates

    sudo chmod 777 /home/cycong/shares

    sudo chmod 777 /home/cycong/privates

    groupadd -g 888 smbgroup    smbgroup是samba的组名

    useradd -g smbgroup samba    samba是samba的用户名

    smbpasswd -a samba    输入两次密码

    /etc/init.d/samba restart    重启samba服务

    接着在windows的地址栏输入debian电脑的ip,就能看到上面设置的两个文件夹了,shares是对所有人,privates是需要凭证的

    Linux /etc/profile文件删除后恢复

    在redhat上配置java环境变量时,不小心将/etc/profile文件删除了,后在网上搜索profile文件的源码copy了一份,profile源码是在window上用文本文档复制粘贴的,保存后后通过ftp上传到虚拟机上,将文件copy到/etc目录下后,使用命令#dos2unix /etc/profile将Window格式转换为Linux、Unix格式,然后执行#source/etc/profile命令即可

    修改系统文件一定要先备份!!

    Debian8 GUI(GNOME)允许Root登录/自动登录

    1. 配置允许用户登录图形化界面(自动)

    # vim /etc/gdm3/daemon.conf

    AutomaticLogin=root

    [security]

    AllowRoot=ture

    2. 配置PAM登录授权允许

    /etc/pam.d/gdm-autologin

    #auth   required        pam_succeed_if.so user != root quiet_success

    /etc/pam.d/gdm-password

    #auth   required        pam_succeed_if.so user != root quiet_success

    // 注释上面两行内容 \\

    Ubuntu18.04安装MySQL后普通用户无法登录

    update mysql.user set authentication_string=PASSWORD('12345678'), plugin='mysql_native_password' where user='root'; flush privileges;

    Linux下用户组、文件权限详解

    一、创建用户:

    1、使用命令 useradd

    例:useradd user1——创建用户user1

    useradd –e 12/30/2009 user2——创建user2,指定有效期2009-12-30到期

    用户的缺省UID从500向后顺序增加,500以下作为系统保留账号,可以指定UID,

    例:useradd –u 600 user3

    2、使用 passwd 命令为新建用户设置密码

    例:passwd user1

    注意:没有设置密码的用户不能使用。

    3、命令 usermod 修改用户账户

    例:将用户 user1的登录名改为  u1,

    usermod –l u1 user1

    例:将用户 user1 加入到 users组中,

    usermod –g users user1

    例:将用户 user1 目录改为/users/us1

    usermod –d /users/us1 user1

    4、使用命令 userdel 删除用户账户

    例:删除用户user2

    userdel user2

    例:删除用户 user3,同时删除他的工作目录

    userdel –r user3

    二、用户组:

    6、命令 groupadd创建用户组

    groupadd –g 888 users

    创建一个组users,其GID为888

    7、命令 gpasswd为组添加用户

    只有root和组管理员能够改变组的成员:

    例:把 user1加入users组

    gpasswd –a user1 users

    例:把 user1退出users组

    gpasswd –d user1 users

    8、命令groupmod修改组

    groupmod –n user users       修改组名user为users

    9、groupdel删除组

    groupdel users    删除组users

    文件权限

    r=4,w=2,x=1  因此rwx=4+2+1=7

    改变权限的命令

    chmod 改变文件或目录的权限

    chmod 755 abc:赋予abc权限rwxr-xr-x

    chmod u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限

    chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限

    chmod a+r abc:给所有用户添加读的权限

    改变所有者(chown)和用户组(chgrp)命令

    chown xiaoming abc:改变abc的所有者为xiaoming

    chgrp root abc:改变abc所属的组为root

    chown root ./abc:改变abc这个目录的所有者是root

    chown ‐R root ./abc:改变abc这个目录及其下面所有的文件和目录的所有者是root

    改变用户所在组

    在添加用户时,可以指定将该用户添加到哪个组中,同样用root的管理权限可以改变某个用户所在的组

    - usermod ‐g 组名 用户名

    你可以用

    - usermod ‐d 目录名 用户名,改变该用户登录的初始目录

    三种配置环境变量的方法

    1. 修改/etc/profile文件

    如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。

    ·用文本编辑器打开/etc/profile

    ·在profile文件末尾加入:

    export JAVA_HOME=/usr/share/jdk1.6.0_14

    export PATH=$JAVA_HOME/bin:$PATH

    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    ·重新登录

    ·注解

    a. 你要将 /usr/share/jdk1.6.0_14改为你的jdk安装目录

    b. linux下用冒号“:”来分隔路径

    c. $PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的值

    在设置环境变量时特别要注意不能把原来的值给覆盖掉了,这是一种

    常见的错误。

    d. CLASSPATH中当前目录“.”不能丢,把当前目录丢掉也是常见的错误。

    e. export是把这三个变量导出为全局变量。

    f. 大小写必须严格区分。

    2. 修改.bash_profile文件

    这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bash_profile文件就可以了。

    ·用文本编辑器打开用户目录下的.bash_profile文件

    ·在.bash_profile文件末尾加入:

    export JAVA_HOME=/usr/share/jdk1.6.0_14

    export PATH=$JAVA_HOME/bin:$PATH

    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    ·重新登录

    3. 直接在shell下设置变量

    不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦。

    只需在shell终端执行下列命令:

    export JAVA_HOME=/usr/share/jdk1.6.0_14

    export PATH=$JAVA_HOME/bin:$PATH

    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    50个linux常用命令

    1.ls -a 列出当前目录下的所有文件,包括以.头的隐含文件(如~/.bashrc)

    ls –l 列出当前目录下文件的详细信息

    2. pwd 查看当前所在目录的绝对路经

    3. cd 目录之间的移动

    4. mkdir目录名 创建一个目录

    5. rm 文件名 删除一个文件

    6. cat文件名 查看文件内容(全屏查看)

    7.more文件名 查看文件内容(可左右移动)

    8. less文件名查看文件内容(可上下左右移动)

    9.mv 路径 文件名 把文件移动到路径下

    mv文件名 文件名改名

    10. grep字符文件名根据字符匹配来查看文件部分内容

    11. find 路经 -name “字符串” 查找路经所在范围内满足字符串匹配的文件和目录

    12.ln 源文件 链接名 创建源文件的硬链接

    ln -s源文件 链接名创建源文件的软链接

    13.touch 文件名 建立文件

    14.df 显示文件系统的总容量,使用量,剩余量

    15.du -b /home 查看目前/HOME目录的容量(k)及子目录的容量(k)

    16. fdisk -l 查看系统分区信息

    17. mount -t 文件系统类型 设备路经 访问路经

    18.chmod *** 文件名 改文件的写读执行权限

    19.diff 文件名 文件名 比较文件

    20.top 动态 ps –aux 静态 pstree 进程树查看系统进程

    21. 程序名 & 后台运行程序

    fg 把后台运行的进程调回前台

    bg 把前台运行进程调到后台

    22. halt init 0 shutdown –h now 关闭系统

    23. reboot init 6 重启系统

    24. init [0123456] 改变系统运行级,7种

    25. at at 5pm + 3 days /bin/ls 指定三天后下午5:00执行/bin/ls

    26. crontab 周期性任务命令(建议详细学习)

    27.date 显示日期的命令

    28.cal 显示日历的命令

    29.bc 不错的简单计算器

    30.man 命令 查询命令帮助

    31.which 查看可执行档案的位置

    32.whereis 查看档案的位置

    33.locate 配合数据库查看档案位置

    34.gzip bzip2 compress 压缩,解压命令

    35.vi 文件名 用VI编辑文件

    36.alias 命令别名设置指令 unalias 释放别名

    37.tar 打包 解包指令

    38.head 显示文件的头几行 tail 显示文件的后几行

    39.| 管道 > 重定向

    40.od 以二进制形式读取档案的内容

    41.su 登入超级管理员 sudo 以管理者身份执行命令

    42.tar包安装指令

    ./configure –prefix=/usr/local 编译前的配置

    make 编译

    make install 安装编译好的源码包

    43.rpm –参数 rpm的安装 查询 删除 升级等

    44.ifconfig 网络配置命令

    ping ping目标主机

    netstat 显示监听端口及进程

    45.clear 清屏

    46.useradd 加用户

    47.passwd 修改密码

    48.chgrp chown 修改文件的用户组所有者

    49.dd 用来备份的指令

    dd if=”input-file” of=”output-file”

    50.sh 脚本文件 执行脚本文件

    展开全文
  • done GUN/Bash 提供了一些内建命令 (BUILTIN COMMANDS),用于在命令行上方便使用: 常用类 echo 显示一行文本或变量 unset 取消变量 set 查看所有变量(环境变量&用户变量) env 查看所有环境变量(格式好看些) ...
    展开全文
  • Kaggle(Gun Violence Data)—美国枪支暴力事件分析(1)   数据来源为kaggle:https://www.kaggle.com/jameslko/gun-violence-data  主要分析13-18年美国枪支暴力事件的特征,以及使用时间序列预测下一年枪支...

     

    Kaggle(Gun Violence Data)—美国枪支暴力事件分析(1)

     

    数据来源为kaggle:https://www.kaggle.com/jameslko/gun-violence-data 
    主要分析13-18年美国枪支暴力事件的特征,以及使用时间序列预测下一年枪支暴力事件发生数量。

    主要用到以下数据包 
    Basemap是python中一个利用地图的库 
    plotly是开挂的作图神器,可以供js, python, R, DB等使用 
    Seaborn是基于matplotlib的python数据可视化库,提供更高层次的API封装,使用起来更加方便快捷。 
    Fbprophet :facebook开源的时间序列预测框架prophet,目前支持R语言和python语言。托管在github上:https://github.com/facebookincubator/prophet。 
    wordcloud 生成词云 
    nltk.corpus 自带词袋中的停用词表去英文停用词

    导入数据包

    #数据基础操作
    import pandas as pd # package for high-performance, easy-to-use data structures and data analysis
    import numpy as np # fundamental package for scientific computing with Python
    #画图
    import matplotlib
    import matplotlib.pyplot as plt # for plotting
    import seaborn as sns # for making plots with seaborn
    color = sns.color_palette()
    from plotly.offline import init_notebook_mode, iplot,plot
    init_notebook_mode(connected=True)
    import plotly.graph_objs as go
    
    import squarify
    from numpy import array
    from matplotlib import cm
    
    '''
    数据处理包
    '''
    from sklearn import preprocessing
    import warnings
    warnings.filterwarnings("ignore")
    
    from nltk.corpus import stopwords
    from textblob import TextBlob
    import datetime as dt
    import warnings
    import string
    import time
    stop_words = list(set(stopwords.words('english')))
    warnings.filterwarnings('ignore')
    punctuation = string.punctuation

    查看数据

    df=pd.read_csv('gun-violence-data_01-2013_03-2018.csv',parse_dates = ['date'])
    df.head()

    这里写图片描述

    数据集维度

    #数据集维度
    df.shape
    #(239677, 29)

     

    数据为空的数量

    #数据为空的数量
    df.isnull().sum()

     

    这里写图片描述 
    可以看出某些特征中空值特别多,但我们后面又没有用到,所以就不管它了。

    数据预处理

    #增加特征
    # Create some additional features
    
    df['year'] = df['date'].dt.year
    df['month'] = df['date'].dt.month
    df['monthday'] = df['date'].dt.day
    df['weekday'] = df['date'].dt.weekday
    df['loss'] = df['n_killed'] + df['n_injured']
    
    try :
        df.drop(['incident_id', 'incident_url', 'source_url', 'incident_url_fields_missing', 'sources','participant_name'], axis=1, inplace=True)
        #去掉2013年数据
        df=df.loc[df['date'].dt.year!=2013]
    except :
        print('process finish')
    
    df.head()

    这里写图片描述
    将时间分成年、月、日,并把受伤和死亡人数求和,方便后面的运算。因为在后面的分析中还发现2013年数据特别少,直觉去掉13年数据后进行分析 :)

    一、数据分析

    1.1暴乱冲突中使用过哪些枪支?

    df['gun_type_parsed'] = df['gun_type'].fillna('0:Unknown')
    gt = df.groupby(by=['gun_type_parsed']).agg({'n_killed': 'sum', 'n_injured' : 'sum', 'state' : 'count'}).reset_index().rename(columns={'state':'count'})
    
    results = {}
    for i, each in gt.iterrows():
        wrds = each['gun_type_parsed'].split("||")
        for wrd in wrds:
            if "Unknown" in wrd:
                continue
            wrd = wrd.replace("::",":").replace("|1","")
            gtype = wrd.split(":")[1]
            if gtype not in results: 
                results[gtype] = {'killed' : 0, 'injured' : 0, 'used' : 0}
            results[gtype]['killed'] += each['n_killed']
            results[gtype]['injured'] +=  each['n_injured']
            results[gtype]['used'] +=  each['count']
    
    gun_names = list(results.keys())
    used = [each['used'] for each in list(results.values())]
    killed = [each['killed'] for each in list(results.values())]
    injured = [each['injured'] for each in list(results.values())]
    danger = []
    for i, x in enumerate(used):
        danger.append((killed[i] + injured[i]) / x)
    
    trace1 = go.Bar(x=gun_names, y=used, name='SF Zoo', orientation = 'v',
        marker = dict(color = '#EEE8AA', 
            line = dict(color = '#EEE8AA', width = 1) ))
    data = [trace1]
    layout = dict(height=400, title='Which guns have been used?', legend=dict(orientation="h"));
    fig = go.Figure(data=data, layout=layout)
    iplot(fig, filename='枪支使用情况统计')

    这里写图片描述

    可以发现,手枪在枪击事件中用的最多,每种枪的使用频率也清晰可见。

    1.2不同地区枪支暴力事件

    #时间格式的转换
    df_year=df.groupby(['year'])['n_killed','n_injured'].agg('sum')
    
    states_df = df['state'].value_counts()
    
    statesdf = pd.DataFrame()
    statesdf['state'] = states_df.index
    statesdf['counts'] = states_df.values
    
    scl = [[0.0, 'rgb(242,240,247)'],[0.2, 'rgb(218,218,235)'],[0.4, 'rgb(188,189,220)'],\
                [0.6, 'rgb(158,154,200)'],[0.8, 'rgb(117,107,177)'],[1.0, 'rgb(84,39,143)']]
    
    state_to_code = {'District of Columbia' : 'dc','Mississippi': 'MS', 'Oklahoma': 'OK', 'Delaware': 'DE', 'Minnesota': 'MN', 'Illinois': 'IL', 'Arkansas': 'AR', 'New Mexico': 'NM', 'Indiana': 'IN', 'Maryland': 'MD', 'Louisiana': 'LA', 'Idaho': 'ID', 'Wyoming': 'WY', 'Tennessee': 'TN', 'Arizona': 'AZ', 'Iowa': 'IA', 'Michigan': 'MI', 'Kansas': 'KS', 'Utah': 'UT', 'Virginia': 'VA', 'Oregon': 'OR', 'Connecticut': 'CT', 'Montana': 'MT', 'California': 'CA', 'Massachusetts': 'MA', 'West Virginia': 'WV', 'South Carolina': 'SC', 'New Hampshire': 'NH', 'Wisconsin': 'WI', 'Vermont': 'VT', 'Georgia': 'GA', 'North Dakota': 'ND', 'Pennsylvania': 'PA', 'Florida': 'FL', 'Alaska': 'AK', 'Kentucky': 'KY', 'Hawaii': 'HI', 'Nebraska': 'NE', 'Missouri': 'MO', 'Ohio': 'OH', 'Alabama': 'AL', 'Rhode Island': 'RI', 'South Dakota': 'SD', 'Colorado': 'CO', 'New Jersey': 'NJ', 'Washington': 'WA', 'North Carolina': 'NC', 'New York': 'NY', 'Texas': 'TX', 'Nevada': 'NV', 'Maine': 'ME'}
    statesdf['state_code'] = statesdf['state'].apply(lambda x : state_to_code[x])
    
    data = [ dict(
            type='choropleth',
            colorscale = scl,
            autocolorscale = False,
            locations = statesdf['state_code'],
            z = statesdf['counts'],
            locationmode = 'USA-states',
            text = statesdf['state'],
            marker = dict(
                line = dict (
                    color = 'rgb(255,255,255)',
                    width = 2
                ) ),
            colorbar = dict(
                title = "Gun Violence Incidents")
            ) ]
    
    layout = dict(
            title = 'State wise number of Gun Violence Incidents',
            geo = dict(
                scope='usa',
                projection=dict( type='albers usa' ),
                showlakes = True,
                lakecolor = 'rgb(255, 255, 255)'),
                 )
    
    fig = dict( data=data, layout=layout )
    iplot( fig, filename='不同地区枪支暴力事件' )

    这里写图片描述

    可以清晰的看到哪个州发生枪击暴力事件的数量最多

    1.3枪支发生年份统计

    df_year.head(1)
    df_year.plot(figsize=(10,8))
    plt.show()

    这里写图片描述

    1.4枪支暴力冲突数量最多的前20个州

    temp = df["state"].value_counts().head(20)
    #temp.iplot(kind='bar', xTitle = 'State name', yTitle = "No. of incidents", title = 'Top 20 States with highest number of Gun Violence',color="Red")trace1
    
    trace_top20=go.Bar(x=temp.index, y=temp.values)
    data=[trace_top20]
    iplot(data,filename='枪支暴力冲突数量最多的前20个州')

    这里写图片描述
    此处去掉了13年数据

    1.5每个州在枪击事件中受伤+死亡人数统计

    df['loss'] = df['n_killed'] + df['n_injured']
    statdf = df.reset_index().groupby(by=['state']).agg({'loss':'sum', 'year':'count'}).rename(columns={'year':'count'})
    statdf['state'] = statdf.index
    
    trace1 = go.Bar(
        x=statdf['state'],
        y=statdf['count'],
        name='Count of Incidents',
        marker=dict(color='rgb(255,10,225)'),
        opacity=0.6
    )
    trace2 = go.Bar(
        x=statdf['state'],
        y=statdf['loss'],
        name='Total Loss',
        marker=dict(color='rgb(58,22,225)'),
        opacity=0.6
    )
    
    data = [trace1, trace2]
    layout = go.Layout(
        barmode='group',
        margin=dict(b=150),
        legend=dict(dict(x=-.1, y=1.2)),
        title = 'State wise number of Gun Violence Incidents and Total Loss',
    )
    
    fig = go.Figure(data=data, layout=layout)
    iplot(fig, filename='grouped-bar')

    这里写图片描述

    先跳过1.6哈~详细的可以看github上的源码哈,地址在文章末尾!

    1.7枪击事件发生地点统计

    from PIL import Image 
    from wordcloud import WordCloud, STOPWORDS
    mask = np.array(Image.open('gun2.jpg'))
    txt = " ".join(df['location_description'].dropna())
    wc = WordCloud(mask=mask, max_words=1200, stopwords=STOPWORDS, colormap='copper', background_color='White').generate(txt)
    plt.figure(figsize=(16,18))
    plt.imshow(wc)
    plt.axis('off')
    plt.title('');
    plt.show()

    这里写图片描述

    枪击事件多发在公寓,公园,高校,机场等地,这是一个很有意思的功能, 主要使用WordCloud, STOPWORDS两个库来表示出现频率最高的地点,词云的展示方式也比较好玩。

    这里先跳过分析的一部分,详细代码看下面github链接哦

    二、数据挖掘

    2.1预测有多少枪支暴力仍然会发生

    先打印2018年已有的数据的时间序列

    df_18=df.ix[df['year']==2018]
    df_ts=df_18[['n_killed','date']]
    df_ts.index=df_18['date']
    df_ts['n_killed'].plot(figsize=(15,6), color="green")
    plt.xlabel('Year')
    plt.ylabel('No. of Deaths')
    plt.title("Death due to Gun Violence Time-Series Visualization")
    plt.show()

    这里写图片描述

    使用facebook开源的fbprophet框架中的Prophet来进行时间序列分析,还可以显示分析的周效应等细节信息,是一个非常好用的框架。

    from fbprophet import Prophet
    sns.set(font_scale=1) 
    df_date_index = df_18[['date','n_killed']]
    df_date_index = df_date_index.set_index('date')
    df_prophet = df_date_index.copy()
    df_prophet.reset_index(drop=False,inplace=True)
    df_prophet.columns = ['ds','y']
    
    m = Prophet()
    m.fit(df_prophet)
    future = m.make_future_dataframe(periods=365,freq='D')
    forecast = m.predict(future)
    fig = m.plot(forecast)
    plt.show()

    这里写图片描述

    打印预测的详细趋势

    m.plot_components(forecast);
    plt.show()

    这里写图片描述

    预计2018年的枪击事件数量仍然呈上升趋势,具体在星期五、星期六有较强的上升趋势,应注意防范

    可能会出现的问题及解决方案

    1.pip install XXX报错:

    parse() got an unexpected keyword argument 'transport_encoding'

    解决:

    conda install pip

    2.No matching distribution found for mpl_toolkits 
    解决:

    pip install --upgrade matplotlib

    3.下载停用词表出错

    Resource 'corpora/stopwords.zip/stopwords/' not found.  Please
      use the NLTK Downloader to obtain the resource:  >>>
      nltk.download()
      Searched in:
        - 'C:\\Users\\liang/nltk_data'
        - 'C:\\nltk_data'
        - 'D:\\nltk_data'
        - 'E:\\nltk_data'
        - 'j:\\Anaconda3\\nltk_data'
        - 'j:\\Anaconda3\\lib\\nltk_data'
        - 'C:\\Users\\liang\\AppData\\Roaming\\nltk_data'

    解决方案:

    nltk.download("stopwords")

    成功提示:

    [nltk_data] Downloading package stopwords to
    [nltk_data] C:\Users\liang\AppData\Roaming\nltk_data...
    [nltk_data] Unzipping corpora\stopwords.zip.
    Out[7]:
    True

    4.去掉DataFrame中某个特征里面符合某条件的数据(如去掉“年份”中为“2013”的数据) 
    解决方法: 
    使用df=df.loc[年份=2013]

    注:df.iloc[]可以很方便的截取要是用哪些数据 
    如df.iloc[:, 1:] 表示使用所有行,第一列以后的数据


    github源码地址: 
    https://github.com/LIANGQINGYUAN/GunViolence_DataMining

     

     

    Kaggle(Gun Violence Data)—美国枪支暴力事件分析(2)

     

    上次分析之后,这次打算用详细的时间序列算法预测,我们使用ARMA时间序列模型作为预测,选取17年数据和18年1月和2月数据作为训练,预测18年3月1日,3月2日及3月3日数据。

    话不多说,直接整吧。

    1.基本数据整理

    #-*- coding: utf-8 -*-
    #arima时序模型
    
    import pandas as pd
    #时序图
    import matplotlib.pyplot as plt
    from plotly.offline import init_notebook_mode, iplot,plot
    init_notebook_mode(connected=True)
    import plotly.graph_objs as go
    
    df=pd.read_csv('gun-violence-data_01-2013_03-2018.csv')
    df=df[['date','n_killed']]
    df.to_csv('data_nkilled.csv')

    2.选取所需数据

    discfile = 'data_nkilled.csv'
    forecastnum = 5
    
    
    #读取数据,指定日期列为指标,Pandas自动将“日期”列识别为Datetime格式
    data = pd.read_csv(discfile)
    data=data.iloc[:,1:]
    
    #处理数据,只需要2018年的数据
    data17=data[data['date'].astype('datetime64').dt.year==2017 ]
    data18=data[data['date'].astype('datetime64').dt.year==2018 ]
    data2=data18[data18['date'].astype('datetime64').dt.month<=2]
    #data3=data[data['date'].astype('datetime64').dt.month==3]
    #data3=data3[data3['date'].astype('datetime64').dt.day>15]
    mydata=pd.DataFrame()
    mydata=mydata.append(data17)
    mydata=mydata.append(data2)
    #mydata=data
    #mydata.head()
    
    temp=mydata.groupby('date').agg({'n_killed' : 'sum'})
    #temp.head()

    选取17年数据和18年1月和2月数据作为训练

    显示真实的时间序列

    trace1=go.Bar(x=temp.index,y=temp['n_killed'])
    data = [trace1]
    layout =dict(height=400, title='2017-2018年被杀人数统计', legend=dict(orientation="h"));
    fig = go.Figure(data=data, layout=layout)
    iplot(fig)

    这里写图片描述
    上图为已有真实数据的分布

    3.自相关图及检验

    自相关图

    #自相关图
    from statsmodels.graphics.tsaplots import plot_acf
    plot_acf(temp)
    plt.show()

    这里写图片描述 
    上图为自相关性检验图,上图展示了明显的1阶拖尾效应,可以初步的判断序列不存在自相关性。

    ADF检验

    #平稳性检测
    from statsmodels.tsa.stattools import adfuller as ADF
    print(u'原始序列的ADF检验结果为:', ADF(temp['n_killed']))

    原始序列的ADF检验结果为: 
    (-3.0443905852697957, 
    0.03095172945803373, 
    14, 
    408, 
    {‘1%’: -3.446479704252724, 
    ‘5%’: -2.8686500930967354, 
    ‘10%’: -2.5705574627547096}, 
    2874.7803552969235)

    ADF检验结果显示p=0.03<0.05,说明不存在显著自相关性

    偏自相关图

    from statsmodels.graphics.tsaplots import plot_pacf
    plot_pacf(temp)
    plt.show() #偏自相关图

    这里写图片描述

    由图中可明显看出该序列的偏自相关图有明显1阶拖尾效应。

    白噪声检验

    #白噪声检验
    from statsmodels.stats.diagnostic import acorr_ljungbox
    print(u'差分序列的白噪声检验结果为:', acorr_ljungbox(temp, lags=1)) #返回统计量和p值

    序列的白噪声检验结果为: (array([8.36275837]), array([0.00382989]))

    可见,p值远小于0.05,说明该序列为平稳的非白噪声检验,有进一步预测的必要和依据。

    4.预测

    由该序列的自相关图和偏自相关图都为1阶,且是平稳的非白噪声序列可以确定使用ARMA模型,且模型参数p=1,q=1.

    from statsmodels.tsa.arima_model import ARMA
    temp=temp.astype(float)
    model = ARMA(temp, (1,1,1)).fit() #建立ARIMA(0, 1, 1)模型
    model.summary2() #给出一份模型报告
    model.forecast(3) #作为期5天的预测,返回预测结果、标准误差、置信区间。

    这里写图片描述

    可见真实值都落在了置信区间(5%)以内,可以推断我们预测的因枪击事件死亡的人数存在合理性,但枪击还是属于突发性不确定性事件,随着时间的推移,预测准确性会明显下滑。

    github项目地址: 
    https://github.com/LIANGQINGYUAN/GunViolence_DataMining

     

    转载自:土豆洋芋山药蛋 https://blog.csdn.net/qq_33414271/article/details/80587856

     

    展开全文
  • 理解GUN的代码标准

    2021-03-20 21:23:52
    p $(distdir)/src cp Makefile $(distdir) cp src/Makefile $(distdir)/src cp src/main.c $(distdir)/src FORCE: -rm $(distdir).tar.gz > /dev/null 2>&1 -rm -rf $(distdir) > /dev/null 2>&1 distcheck:$...
  • Pubg Up Gun

    2021-08-09 03:44:59
    get you guns to the top avoiding many ambush in your road you have some amazing ballistics weopons with powerfull ...top of galaxy game pubg up gun is free and avalaible on android redmi mobile phones...
  • Top Gun Bottom line 每个人的生活道路几乎都是崎岖不平,有上有下的。当然,一般人都喜欢攀登到社会的高峰,而不愿意沦落到社会的最低层。美国的俗语和成语充份地反应了这种概念。今天我们就来介绍两个跟上和下,也...
  • 我在厦大读书时,我们研究生的篮球队号称Top Gun。那么什么是Top Gun呢?我想他们是看了一部叫《Top Gun》的美国电影。这部电影讲几个海军的战斗机驾驶员争夺最佳飞行员位置的故事。可是Top Gun这个词并不是因为这部...
  • TopoGun 2:快捷键

    千次阅读 2020-01-29 18:37:12
    视图类操作 操作 快捷键 说明 旋转视图 Alt + 左键 缩放视图 Alt + 滚轮 平移视图 Alt + 右键 参考最大化 A 选区最大化 F 工具切换 ...暂无
  • top 命令是最流行的性能监视工具之一,Linux新手必需了解。它是一个优秀的交互式工具,用于监视性能。它提供系统整体性能,但报告进程信息才是 top 命令的长处。top 命令是最流行的性能监视工具之一,我们必需了解。...
  • Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object class
  • GUN Make指南

    2013-03-24 19:23:17
    margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-...
  • TopoGun 3基础:Draw工具

    千次阅读 2020-07-14 18:49:58
    Draw工具 快捷键:D 使用步骤 先设置一下点数(Points) 拖动鼠标画线 清除线 点击Create Geometry或者直接按Enter即可生成真正的边,然后可以点击Clear All...使用桥接工具补面 切换到桥接工具,快捷键Shift + B ......
  • wen zi gun dong

    2019-09-28 06:44:13
    2px solid #3492D1 ; padding : 0 8px ; margin-top : -1px ; display : inline-block ; } .list_lh { height : 400px ; overflow : hidden ; } .list_lh li { padding : 10px ; } .list_lh li.lieven ...
  • HDU5281GUN

    2016-04-11 22:26:49
    Senior's GunTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1881 Accepted Submission(s): 625 Problem DescriptionXuejiejie is a beautif
  • IBM Rational Top Gun 培训的两点感悟

    千次阅读 2006-08-28 22:43:00
    上个星期参加了三天半的“Rational Top Gun”培训,几点感触分享: 1、真正的销售应该能够能够敏锐洞悉客户的问题所在,做到“想客户所想,急客户所急”。现在的很多销售,虽说长着狗鼻子,但对待客户却总是两眼闪...
  • gun autoconf 和 automake 生成 Makefile

    千次阅读 2011-10-19 22:50:42
    比如test, 可定义testdir = $(prefix)/test, 然后test_DATA =test1 test2,则test1,test2会作为数据文件安装到$(prefix)/ /test目录下。 我们首先需要在工程顶层目录下(即project/)创建一个Makefile.am来指明...
  • top1000

    2021-07-27 16:02:37
    123456 password 12345678 qwerty 123456789 12345 1234 111111 1234567 dragon 123123 baseball abc123 football monkey letmein 696969 shadow master ...1qaz2wsx 7777777 fuckyou 121212 000000
  • License GPLv2+: GNU GPL version 2 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Tom Tromey ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,175
精华内容 1,270
关键字:

2guntop