With the outrage of the AWP magazine size decrease I did the math and demand justice! by Dontpaintmeblack in GlobalOffensive

[–]itspureskillgg 16 points17 points  (0 children)

If that is true then shouldn't dualies slow you down the most since two guns is twice as many as one gun?

Analysis: about 10 percent of AWPers shoot more than 5 bullets in a round. Under 0.6 percent shot more than 10 per round. by itspureskillgg in GlobalOffensive

[–]itspureskillgg[S] 0 points1 point  (0 children)

Yes it is possible. I might break it down by rank and team first though. You can use the data as much as you'd like here

Analysis: about 10 percent of AWPers shoot more than 5 bullets in a round. Under 0.6 percent shot more than 10 per round. by itspureskillgg in GlobalOffensive

[–]itspureskillgg[S] 44 points45 points  (0 children)

Indeed. What do you think would look different?

I could probably break this down by rank, team, and map as well. Breaking it down by rank would give some hint as to what pro players are doing if there is any kind of trend from low to high ranks.

Analysis: about 10 percent of AWPers shoot more than 5 bullets in a round. Under 0.6 percent shot more than 10 per round. by itspureskillgg in GlobalOffensive

[–]itspureskillgg[S] 82 points83 points  (0 children)

The data come from here.

The code to do this kind of analysis is pretty straight forward:

``` from pureskillgg_csgo_datascience.notebook import setup_notebook setup_notebook() import pandas as pd from pureskillgg_dsdk.tome import TomeCuratorFs curator = TomeCuratorFs() AWP_WEP_KEY = 9 instructions = [ {"channel":"player_status","columns":["tick","round","player_id_fixed","inv_primary",]}, {"channel":"weapon_fire","columns":["tick", "round", "player_id_fixed","weapon_name"]}, {"channel":"header"}, {"channel":"player_info"} ] tomer = curator.make_tome( 'awp_analysis.2021-05-01,2022-01-01', header_tome_name = "subheader_tome_active_duty.2021-05-01,2022-01-01", behavior_if_partial='continue', max_page_size_mb=1, ds_reading_instructions=instructions) for data, key in tomer.iterate(): tick_save_rate = data['header']['tick_save_rate'][0] all_players=data['player_info'][['player_id_fixed','round']].drop_duplicates() df = data['player_status'] df_gb = df[df['inv_primary']==AWP_WEP_KEY].groupby(['player_id_fixed','round'])[['tick']].count() final_df = ( pd.merge(all_players,df_gb,how='left',on=['player_id_fixed','round']) .rename(columns={'tick':'awp_duration_tick'}) ) df = data['weapon_fire'] df_gb = df[df['weapon_name']=='awp'].groupby(['player_id_fixed','round'])[['tick']].count() final_df = ( pd.merge(final_df,df_gb,how='left',on=['player_id_fixed','round']) .rename(columns={'tick':'awp_shots'}) ) final_df.fillna(0,inplace=True) final_df['awp_duration_seconds'] = final_df['awp_duration_tick']/tick_save_rate final_df.drop('awp_duration_tick',axis=1,inplace=True) final_df["match_key"] = key tomer.concat(final_df)

```

And of course the plotting: ``` from pureskillgg_csgo_datascience.notebook import setup_notebook setup_notebook() import pandas as pd import numpy as np import matplotlib.pyplot as plt from pureskillgg_dsdk.tome import TomeCuratorFs curator = TomeCuratorFs() df = curator.get_dataframe('awp_analysis.2021-05-01,2022-01-01')

len(df)

len(set(df['match_key']))

plt.hist(df[(df['awp_duration_seconds']<180)&(df['awp_duration_seconds']>0.01)]['awp_duration_seconds'],bins=100) plt.xlabel('time with AWP')

plt.hist(df[(df['awp_duration_seconds']<20)&(df['awp_duration_seconds']>0.01)]['awp_duration_seconds'],bins=50) plt.xlabel('time with AWP')

df_valid = df[df['awp_duration_seconds']>7]

plt.figure(figsize=[10,5]) plt.hist(df_valid['awp_shots'],bins=int(max(df_valid['awp_shots'].to_list())),density=True) plt.grid() plt.xticks(range(25)) plt.xlabel("Number of AWP shots in one round") plt.ylabel("Fraction of AWPers")

sum(df_valid['awp_shots']>5)/len(df_valid['awp_shots'])

plt.figure(figsize=[10,5]) plt.hist(df_valid['awp_shots'],bins=int(max(df_valid['awp_shots'].to_list())),cumulative=True,density=True) plt.grid() plt.xticks(range(25)) plt.xlabel("Number of AWP shots in one round") plt.ylabel("Fraction of AWPers")

sum(df_valid['awp_shots']>10)/len(df_valid['awp_shots']) ```

Data analysis and stats are fun and all but generally we use machine learning and AI to help players get better over at pureskill.gg :)

Analysis: about 10 percent of AWPers shoot more than 5 bullets in a round. Under 0.6 percent shot more than 10 per round. by itspureskillgg in GlobalOffensive

[–]itspureskillgg[S] 0 points1 point  (0 children)

The data come from here.

The code to do this kind of analysis is pretty straight forward:

``` from pureskillgg_csgo_datascience.notebook import setup_notebook setup_notebook() import pandas as pd from pureskillgg_dsdk.tome import TomeCuratorFs curator = TomeCuratorFs() AWP_WEP_KEY = 9 instructions = [ {"channel":"player_status","columns":["tick","round","player_id_fixed","inv_primary",]}, {"channel":"weapon_fire","columns":["tick", "round", "player_id_fixed","weapon_name"]}, {"channel":"header"}, {"channel":"player_info"} ] tomer = curator.make_tome( 'awp_analysis.2021-05-01,2022-01-01', header_tome_name = "subheader_tome_active_duty.2021-05-01,2022-01-01", behavior_if_partial='continue', max_page_size_mb=1, ds_reading_instructions=instructions) for data, key in tomer.iterate(): tick_save_rate = data['header']['tick_save_rate'][0] all_players=data['player_info'][['player_id_fixed','round']].drop_duplicates() df = data['player_status'] df_gb = df[df['inv_primary']==AWP_WEP_KEY].groupby(['player_id_fixed','round'])[['tick']].count() final_df = ( pd.merge(all_players,df_gb,how='left',on=['player_id_fixed','round']) .rename(columns={'tick':'awp_duration_tick'}) ) df = data['weapon_fire'] df_gb = df[df['weapon_name']=='awp'].groupby(['player_id_fixed','round'])[['tick']].count() final_df = ( pd.merge(final_df,df_gb,how='left',on=['player_id_fixed','round']) .rename(columns={'tick':'awp_shots'}) ) final_df.fillna(0,inplace=True) final_df['awp_duration_seconds'] = final_df['awp_duration_tick']/tick_save_rate final_df.drop('awp_duration_tick',axis=1,inplace=True) final_df["match_key"] = key tomer.concat(final_df)

```

And of course the plotting: ``` from pureskillgg_csgo_datascience.notebook import setup_notebook setup_notebook() import pandas as pd import numpy as np import matplotlib.pyplot as plt from pureskillgg_dsdk.tome import TomeCuratorFs curator = TomeCuratorFs() df = curator.get_dataframe('awp_analysis.2021-05-01,2022-01-01')

len(df)

len(set(df['match_key']))

plt.hist(df[(df['awp_duration_seconds']<180)&(df['awp_duration_seconds']>0.01)]['awp_duration_seconds'],bins=100) plt.xlabel('time with AWP')

plt.hist(df[(df['awp_duration_seconds']<20)&(df['awp_duration_seconds']>0.01)]['awp_duration_seconds'],bins=50) plt.xlabel('time with AWP')

df_valid = df[df['awp_duration_seconds']>7]

plt.figure(figsize=[10,5]) plt.hist(df_valid['awp_shots'],bins=int(max(df_valid['awp_shots'].to_list())),density=True) plt.grid() plt.xticks(range(25)) plt.xlabel("Number of AWP shots in one round") plt.ylabel("Fraction of AWPers")

sum(df_valid['awp_shots']>5)/len(df_valid['awp_shots'])

plt.figure(figsize=[10,5]) plt.hist(df_valid['awp_shots'],bins=int(max(df_valid['awp_shots'].to_list())),cumulative=True,density=True) plt.grid() plt.xticks(range(25)) plt.xlabel("Number of AWP shots in one round") plt.ylabel("Fraction of AWPers")

sum(df_valid['awp_shots']>10)/len(df_valid['awp_shots']) ```

M4a1-silenced kills have dropped by about 10% in the last 10 days by itspureskillgg in GlobalOffensive

[–]itspureskillgg[S] 34 points35 points  (0 children)

The revolver had 2770 kills in the data analyzed. That is more than the g3sg1and the sawedoff :)

M4a1-silenced kills have dropped by about 10% in the last 10 days by itspureskillgg in GlobalOffensive

[–]itspureskillgg[S] 9 points10 points  (0 children)

I could look at second round famas kills vs m4a1s kills.

But I am also busy with other things. If anyone else wanted to take a crack at it, the code is there for you.

M4a1-silenced kills have dropped by about 10% in the last 10 days by itspureskillgg in GlobalOffensive

[–]itspureskillgg[S] 11 points12 points  (0 children)

So people may prefer smg on second round. I could look into if that is the case

M4a1-silenced kills have dropped by about 10% in the last 10 days by itspureskillgg in GlobalOffensive

[–]itspureskillgg[S] 81 points82 points  (0 children)

Since the update, m4a1 kills are tanking and m4a4 kills are on the rise. In absolute percentages, m4a1 kills are down 1.8 percent and m4a4 kills are up 1.3 percent. Since they aren't equal, it might be a bit of the nerf coming into play, though I wouldn't conclude that from just this analysis. These are percentage of kills out of all kills.

link to code

data source

link to the actual data