
ChatGPTã®ããŒã¿åæãã©ã°ã€ã³Noteableã§éãã§ã¿ããïŒ
ChatGPTã®ããŒã¿åæãã©ã°ã€ã³ã®Noteableã䟿å©ã ãšSNSã§è©±é¡ã«ãªã£ãŠããŸããããããããŒã¿åæãšèšãããŠããäœã«äœ¿ãã°ããã®ãããåãããªããšãã人ãå€ãã§ãããã
ããã§ããŸãã¯Noteableã䜿ã£ãŠãããããªããšããã£ãŠã¿ãŠãäœ¿ãæ¹ã«æ
£ãããšããããå§ããŸãããã
ïŒïŒNoteableã®æŠèŠãšäœ¿ãæ¹
Noteableã¯ãPythonãSQLãªã©ã®ã³ãŒããèªåçã«çæããŠå®è¡ããã°ã©ããªã©ãäœæããŠããŒã¿ãå¯èŠåããããšãã§ããããŒã¿åæããŒã«ã§ãChatGPTã®ãã©ã°ã€ã³ãšããŠæäŸãããŠããŸãã
ChatGPTã®æ©èœãšçµã¿åãããããšã§ãèªç¶èšèªã«ããæç€ºã§ããŒã¿åæãè¡ãã³ãŒããçæã»å®è¡ããçµæãã°ã©ãã§å¯èŠåããããšãªã©ãã§ããŸãã
ChatGPTã®ãã©ã°ã€ã³ã¯ãææãã©ã³ïŒæ20ãã«ïŒã®ChatGPT Plusã«å å ¥ããã°å©çšã§ããŸããNoteableã®ãã©ã°ã€ã³ã䜿çšããå Žåã¯ãäºããã©ã°ã€ã³ã¹ãã¢ããNoteableãã€ã³ã¹ããŒã«ããŠãã»ããããŠãããŠãã ããã

ïŒïŒ100ãŸã§ã®çŽ æ°ã調ã¹ã
Noteableãã©ã°ã€ã³ãã»ããããChatGPTã«100ãŸã§ã®çŽ æ°ã調ã¹ãŠããããŸããã
100ãŸã§ã®çŽ æ°ãæ±ããŠãã ããã
ã¡ãªã¿ã«ãããŒãããã¯ãéããšã以äžã®ãããªã³ãŒããèªåçæãããŠããŸããã
def is_prime(n):
if n <= 1:
return False
elif n <= 3:
return True
elif n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True
primes = [x for x in range(101) if is_prime(x)]
primesãã®ããã«ãNoteableãã©ã°ã€ã³ã¯ãå ¥åããããã³ããã®å 容ãã倿ããŠãèªåã§ã³ãŒããçæããŠå®è¡ããåçãåºåããããšãã§ããŸãã
ïŒïŒé¶Žäºç®ãè§£ã
Noteableãã©ã°ã€ã³ãã»ããããChatGPTã«é¶Žäºç®ãè§£ããŠããããŸããã
é¶Žã®è¶³ã¯2æ¬ãäºã®è¶³ã¯4æ¬ã§ããé¶Žãšäºã®åèšã¯5å¹ã§ãè¶³ã®æ°ãåèšãããš14æ¬ã§ãã
ãã®å Žåãäºã¯äœå¹ããŸããïŒ
ã¡ãªã¿ã«ãããŒãããã¯ãéããšã以äžã®ãããªã³ãŒããèªåçæãããŠããŸããã
from sympy import symbols, Eq, solve
T, K = symbols('T K') # é¶Žã®æ° Tãäºã®æ° K
# æ¹çšåŒãèšå®
eq1 = Eq(T + K, 5) # é¶Žãšäºã®åèšæ°
eq2 = Eq(2*T + 4*K, 14) # è¶³ã®åèšæ°
# é£ç«æ¹çšåŒãè§£ã
solution = solve((eq1,eq2), (T, K))
solution[K]ããã«ããã®åé¡ã®è§£æ³ãå¯èŠåããŠããããŸããã
ãã®åé¡ã®è§£æ³ãå¯èŠåããŠãã ããã
ãã®ããã«ãç°¡åãªæç€ºã§ã°ã©ããæžããŠãããããšãã§ããŸãã
ïŒïŒãã±ã¢ã³ã®åŒ·ããæ¯èŒãã
Noteableãã©ã°ã€ã³ãã»ããããChatGPTã«ããã«ãã¥ãŠãšããã«ã²ãšãŒãã¬ã¡ã®åŒ·ããæ¯èŒããŠããããŸããã
ãã«ãã¥ãŠãšããã«ã²ãšãŒãã¬ã¡ã®åŒ·ããæ¯èŒããã°ã©ããäœæããŠãã ããã


ãã®æ£ã°ã©ããæãããã«Noteableãèªåçæããã³ãŒãã¯ä»¥äžã®ãšããã§ãã
import matplotlib.pyplot as plt
# ããŒã¿ãã¬ãŒã ã転眮
df_transposed = df.set_index('Pokemon').T
# æ£ã°ã©ããäœæ
df_transposed.plot(kind='bar', figsize=(12, 6))
plt.title('Base Stats of Pikachu, Charmander, and Squirtle')
plt.ylabel('Value')
plt.xlabel('Stat')
plt.show()æåã®æé ã§ã¯ããåºæ¬ã¹ããŒã¿ã¹ãæåã§å ¥åããŸããããšãªã£ãŠããŸããããå®éã«ã¯ãChatGPTãå šéšãã£ãŠãããŸããã
ããã«ãåãã±ã¢ã³ã®ç¹åŸŽãäžç®ã§åããããã«ã¬ãŒããŒãã£ãŒããäœæããŠããããŸããã
ãã®çµæãã¬ãŒããŒãã£ãŒãã§è¡šããŠãã ããã
ãã®ã¬ãŒããŒãã£ãŒããæãããã«Noteableãèªåçæããã³ãŒãã¯ä»¥äžã®ãšããã§ãã
import numpy as np
# ã¬ãŒããŒãã£ãŒããäœæããããã®æºå
labels=np.array(['HP', 'Attack', 'Defense', 'Sp. Atk', 'Sp. Def', 'Speed'])
num_vars = len(labels)
# åãã±ã¢ã³ã®ã¹ããŒã¿ã¹
stats = df.drop(columns='Pokemon').values
# è§åºŠãèšç®
angles = np.linspace(0, 2 * np.pi, num_vars, endpoint=False).tolist()
# ãã£ãŒããéããããã«æåã®è§åºŠã远å
angles += angles[:1]
# æç»
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
for i, color in enumerate(['orange', 'red', 'blue']):
values = stats[i].tolist()
values += values[:1]
ax.plot(angles, values, color=color, linewidth=1, label=df['Pokemon'][i])
ax.fill(angles, values, color=color, alpha=0.25)
# ã°ã©ãã®èŠãç®ãæŽãã
ax.set_theta_offset(np.pi / 2)
ax.set_theta_direction(-1)
ax.set_thetagrids(np.degrees(angles[:-1]), labels)
ax.set_rlabel_position(180 / num_vars)
ax.set_yticklabels([])
ax.set_ylim(0, 100)
ax.legend(loc='upper right', bbox_to_anchor=(1.3, 1.1))
plt.title('Base Stats of Pikachu, Charmander, and Squirtle')
plt.show()ãã®ããã«ãããŒã¿ãåºã«æ§ã ãªã°ã©ããäœæããããšãã§ããã°ã©ãã®èŠæ¹ã瀺ããŠãããŸãã
ã¡ãªã¿ã«ãWolframãã©ã°ã€ã³ã¯ã以äžã®ããã«ãã±ã¢ã³ã®ç»åã衚瀺ããããšãã§ããŸãã
ãã«ãã¥ãŠãšããã«ã²ãšãŒãã¬ã¡ã®ç»åã瀺ããŠãã ããã
ïŒïŒå€©æ°äºå ±ã調ã¹ã
Noteableãã©ã°ã€ã³ãã»ããããChatGPTã«å€©æ°äºå ±ã調ã¹ãŠããããŸããã
https://api.open-meteo.com/v1/forecastããæ±äº¬ã®å€©æ°äºå ±ã®æ
å ±ãå
¥æããŠãçµµæåä»ãã§ãå
æ°ãªã倩æ°ãå§ãã颚ã«äŒããŠãã ããã
current_weatherã®ãã©ã¡ãŒã¿ã䜿çšããŠãã ããã

Open-Meteoã®APIããå€©æ°æ å ±ãååŸããããã«Noteableãèªåçæããã³ãŒãã¯ä»¥äžã®ãšããã§ãã
import requests
import json
def get_weather_forecast():
url = 'https://api.open-meteo.com/v1/forecast'
params = {'latitude': 35.6895, 'longitude': 139.6917, 'current_weather': True}
response = requests.get(url, params=params)
data = response.json()
return data
weather_data = get_weather_forecast()
weather_datadef weather_forecast_message(weather_data):
temperature = weather_data['current_weather']['temperature']
windspeed = weather_data['current_weather']['windspeed']
weathercode = weather_data['current_weather']['weathercode']
is_day = weather_data['current_weather']['is_day']
time = weather_data['current_weather']['time']
if weathercode <= 50:
weather_emoji = 'âïž'
weather_status = 'æŽã'
elif weathercode <= 100:
weather_emoji = 'ð§ïž'
weather_status = 'éš'
elif weathercode <= 200:
weather_emoji = 'âïž'
weather_status = 'éª'
else:
weather_emoji = 'âïž'
weather_status = 'é²'
day_night = 'æŒ' if is_day else 'å€'
message = f'ããã«ã¡ã¯ïŒä»æ¥ã®æ±äº¬ã®å€©æ°ã¯{weather_emoji} {weather_status}ã§ãïŒ\n'
message += f'çŸåšã®æ°æž©ã¯{temperature}床ã颚éã¯{windspeed}m/sã§ãã\n'
message += f'çŸåšã®æéã¯{time}ã§ã{day_night}ã§ãã\n'
message += 'çŽ æµãªäžæ¥ããéãããã ããïŒð'
return message
forecast_message = weather_forecast_message(weather_data)
forecast_messageæåã¯ãAPIããã®å€©æ°æ å ±ã®åã蟌ã¿ãäžæããããªãã£ãã®ã§ããããcurrent_weatherãã®ãã©ã¡ãŒã¿ã䜿çšããããæå®ããããšã«ãã£ãŠã倱æããã«ããŒã¿ãåã蟌ããããã«ãªããŸããã
次ã«ãæ²çžã®å€©æ°ã«ã€ããŠäŒããŠããããŸãã
次ã¯ãæ²çžã®å€©æ°ãæããŠãã ããã
ä»åãNoteableãèªåçæããã³ãŒãã¯ä»¥äžã®ãšããã§ãã
def get_weather_forecast(latitude, longitude):
url = 'https://api.open-meteo.com/v1/forecast'
params = {'latitude': latitude, 'longitude': longitude, 'current_weather': True}
response = requests.get(url, params=params)
data = response.json()
return data
okinawa_weather_data = get_weather_forecast(26.5013, 127.9454)
okinawa_weather_dataokinawa_forecast_message = weather_forecast_message(okinawa_weather_data)
okinawa_forecast_messageãã®ããã«ãNoteableãã©ã°ã€ã³ã¯ãå€éšããããŒã¿ãååŸãããã®ããŒã¿ãå å·¥ããŠåºåããããšãã§ããŸãã
ïŒïŒå€§è°·éžæã®æçžŸãåæãã
Noteableãã©ã°ã€ã³ãšWebPilotãã©ã°ã€ã³ãã»ããããChatGPTã«å€§è°·éžæã®æçžŸãåæããŠããããŸããã
å¿
èŠãªããŒã¿ã¯ãã¡ãžã£ãŒãªãŒã°ã®æŽå²ã«ç»å Žãããã¹ãŠã®éžæã®éççµ±èšããŒã¿ãæäŸããBaseballReferenceã®Webãµã€ãããå
¥æããŸããWebPilotãã©ã°ã€ã³ã¯ãWebãµã€ãããã®ããŒã¿ã®ååŸãè£å©ããããã«äœ¿çšããŸããã
https://www.baseball-reference.com/players/o/ohtansh01.shtmlã®ããŒã¿ãå©çšããŠã倧谷ç¿å¹³éžæã®æææçžŸãšæè
æçžŸã®çžé¢é¢ä¿ãåæããŠãã ããã
ERAïŒé²åŸ¡çãIPïŒæçåæ°ãSOïŒå¥ªäžæ¯æ°
AVGïŒæçãHRïŒããŒã ã©ã³æ°ãRBIïŒæç¹

ãªãããããŸã§ã«Noteableãèªåçæããã³ãŒãã¯ä»¥äžã®ãšããã§ãã
import pandas as pd
from scipy.stats import pearsonr
# æææçžŸããŒã¿
pitching_data = {
'Year': [2018, 2019, 2020, 2021, 2022, 2023],
'ERA': [3.31, 0.00, 37.80, 3.18, 2.56, 2.58],
'IP': [51.2, 0.0, 1.2, 130.1, 77.1, 94.0],
'SO': [63, 0, 3, 156, 89, 115]
}
pitching_df = pd.DataFrame(pitching_data)
# æè
æçžŸããŒã¿
batting_data = {
'Year': [2018, 2019, 2020, 2021, 2022, 2023],
'AVG': [.285, .286, .190, .257, .269, .272],
'HR': [22, 18, 7, 46, 41, 28],
'RBI': [61, 62, 24, 100, 98, 70]
}
batting_df = pd.DataFrame(batting_data)
pitching_df, batting_df
çžé¢ä¿æ°ãèšç®ããããã«Noteableãèªåçæããã³ãŒãã¯ä»¥äžã®ãšããã§ãã
# ããŒã¿ãã¬ãŒã ãããŒãžãã
df = pd.merge(pitching_df, batting_df, on='Year')
# ERAãšAVGã®çžé¢é¢ä¿ãèšç®ãã
corr_era_avg, _ = pearsonr(df['ERA'], df['AVG'])
# ERAãšHRã®çžé¢é¢ä¿ãèšç®ãã
corr_era_hr, _ = pearsonr(df['ERA'], df['HR'])
# ERAãšRBIã®çžé¢é¢ä¿ãèšç®ãã
corr_era_rbi, _ = pearsonr(df['ERA'], df['RBI'])
# IPãšAVGã®çžé¢é¢ä¿ãèšç®ãã
corr_ip_avg, _ = pearsonr(df['IP'], df['AVG'])
# IPãšHRã®çžé¢é¢ä¿ãèšç®ãã
corr_ip_hr, _ = pearsonr(df['IP'], df['HR'])
# IPãšRBIã®çžé¢é¢ä¿ãèšç®ãã
corr_ip_rbi, _ = pearsonr(df['IP'], df['RBI'])
# SOãšAVGã®çžé¢é¢ä¿ãèšç®ãã
corr_so_avg, _ = pearsonr(df['SO'], df['AVG'])
# SOãšHRã®çžé¢é¢ä¿ãèšç®ãã
corr_so_hr, _ = pearsonr(df['SO'], df['HR'])
# SOãšRBIã®çžé¢é¢ä¿ãèšç®ãã
corr_so_rbi, _ = pearsonr(df['SO'], df['RBI'])
corr_era_avg, corr_era_hr, corr_era_rbi, corr_ip_avg, corr_ip_hr, corr_ip_rbi, corr_so_avg, corr_so_hr, corr_so_rbiãã®ããã«ãNoteableã¯å€éšã®ããŒã¿ãåãå ¥ããèªåçã«ã³ãŒããäœæããŠå®è¡ããããšã«ãããããŒã¿åæãè¡ãããšãã§ããŸãã
次ã«ããã®çžé¢åæã®çµæãåããããããªãããã«Noteableã«å¯èŠåããŠããããŸããã
ãã®çµæãå¯èŠåããŠãã ããã

ãããèŠããšãERAïŒé²åŸ¡çïŒãšAVGïŒæçïŒã®è² ã®çžé¢ãšããã®ã¯ãããã£ãŠãæææçžŸã®è¯ãïŒé²åŸ¡çãäœãïŒãšãã¯ãæè æçžŸãè¯ãïŒæçãé«ãïŒãšããããšã衚ããŠããããã«èŠããŸããããã
æ£åžå³ãæãããã«Noteableãèªåçæããã³ãŒãã¯ä»¥äžã®ãšããã§ãã
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# æææçžŸããŒã¿
pitching_data = {
'Year': [2018, 2019, 2020, 2021, 2022, 2023],
'ERA': [3.31, 0.00, 37.80, 3.18, 2.56, 2.58],
'IP': [51.2, 0.0, 1.2, 130.1, 77.1, 94.0],
'SO': [63, 0, 3, 156, 89, 115]
}
pitching_df = pd.DataFrame(pitching_data)
# æè
æçžŸããŒã¿
batting_data = {
'Year': [2018, 2019, 2020, 2021, 2022, 2023],
'AVG': [.285, .286, .190, .257, .269, .272],
'HR': [22, 18, 7, 46, 41, 28],
'RBI': [61, 62, 24, 100, 98, 70]
}
batting_df = pd.DataFrame(batting_data)
# ããŒã¿ãã¬ãŒã ãããŒãžãã
df = pd.merge(pitching_df, batting_df, on='Year')
# ERAãšAVGã®æ£åžå³ããããããã
plt.figure(figsize=(10, 6))
sns.scatterplot(x='ERA', y='AVG', data=df)
plt.title('ERA vs AVG')
plt.show()
# IPãšHRã®æ£åžå³ããããããã
plt.figure(figsize=(10, 6))
sns.scatterplot(x='IP', y='HR', data=df)
plt.title('IP vs HR')
plt.show()
# SOãšRBIã®æ£åžå³ããããããã
plt.figure(figsize=(10, 6))
sns.scatterplot(x='SO', y='RBI', data=df)
plt.title('SO vs RBI')
plt.show()æåŸã«ããã®çµæãéç解説è ã®èœååæºããã«è§£èª¬ããŠããããŸããã
éç解説è
ã®èœååæºãããšããŠããã®çµæã解説ããŠãã ãããå ¥åãéç解説è ã®èœååæºãããšããŠããã®çµæã解説ããŠãã ããã
åºåãèœååæºæ°ã®èŠç¹ãããã®çµæã解説ãããšã以äžã®ããã«ãªããŸãã
ãŸãã倧谷ç¿å¹³éžæã®æææçžŸïŒERAãIPãSOïŒãšæè æçžŸïŒAVGãHRãRBIïŒã®éã«ã¯äžå®ã®çžé¢é¢ä¿ãèŠãããŸããç¹ã«ãERAïŒé²åŸ¡çïŒãšAVGïŒæçïŒã®éã«ã¯åŒ·ãè² ã®çžé¢ãèŠãããããã¯é²åŸ¡çãäœãïŒã€ãŸããææãšããŠã®ããã©ãŒãã³ã¹ãè¯ãïŒå¹Žã¯æçãäœãåŸåã«ãããéã«é²åŸ¡çãé«ãïŒææãšããŠã®ããã©ãŒãã³ã¹ãäœãïŒå¹Žã¯æçãé«ãåŸåã«ããããšã瀺ããŠããŸããããã¯ãå€§è°·éžæãææãšããŠã®æŽ»èºãå€ãå¹Žã¯æè ãšããŠã®ããã©ãŒãã³ã¹ãäœäžããåŸåã«ããããšã瀺åããŠããŸãã
äžæ¹ã§ãIPïŒæçåæ°ïŒãšHRïŒããŒã ã©ã³æ°ïŒãSOïŒå¥ªäžæ¯æ°ïŒãšRBIïŒæç¹ïŒã®éã«ã¯åŒ·ãæ£ã®çžé¢ãèŠãããŸããããã¯ãå€ãã®ã€ãã³ã°ãæããããå€ãã®å¥ªäžæ¯ãèšé²ãããããïŒã€ãŸããææãšããŠã®æŽ»èºãå€ãïŒå¹Žã¯ãããŒã ã©ã³æ°ãæç¹ãå¢ããåŸåã«ããããšã瀺ããŠããŸããããã¯ãå€§è°·éžæãææãšããŠã®æŽ»èºãå€ã幎ã§ããæè ãšããŠã®ããã©ãŒãã³ã¹ãé«ãã¬ãã«ãç¶æã§ããèœåãæã£ãŠããããšã瀺ããŠããŸãã
ãããã®çµæãããå€§è°·éžæã®ææãšæè ã®ããã©ãŒãã³ã¹ã¯äžå®ã®çžé¢é¢ä¿ãæã£ãŠããããšãããããŸããããã®é¢ä¿æ§ã¯äžæŠã«ã¯å®çŸ©ã§ããŸãããå€§è°·éžæã®ããã«ææãšæè ã®äž¡æ¹ã§æŽ»èºããéžæã¯çããããã®ããã©ãŒãã³ã¹ã¯å€ãã®èŠçŽ ã«ãã£ãŠåœ±é¿ãåããŸãããããã£ãŠããããã®çµæã¯ãããŸã§äžéšã®èгå¯ã«éãããããåºç¯ãªããŒã¿ãšè©³çްãªåæãå¿ èŠãšãªãã§ãããã
ãŸããèœåæ°ã®ãããªããŒã¿åæã«åºã¥ãéçã®æŠç¥ãæå±ããè ã«ãšã£ãŠããã®ãããªåæã¯éåžžã«æçšã§ããå€§è°·éžæã®ãããªäºåæµã®éžæãã©ã®ããã«æé©ã«æŽ»çšãããããã®ããã©ãŒãã³ã¹ã®ãã©ã³ã¹ãçè§£ããããšã¯ãããŒã å šäœã®æŠç¥ãèããäžã§éèŠãªèŠçŽ ãšãªããŸããå€§è°·éžæã®ãããªäºåæµã®éžæã¯ããã®ååšèªäœãããŒã ã«ãšã£ãŠå€§ããªæŠç¥ç䟡å€ãæã£ãŠããŸããææãšããŠãæè ãšããŠãé«ãããã©ãŒãã³ã¹ãçºæ®ã§ãã圌ã®èœåã¯ãçžæããŒã ã«å¯Ÿãããã¬ãã·ã£ãŒãå¢å ãããæã ã®ããŒã ãæå©ã«è©Šåãé²ããããšãå¯èœã«ããŸãã
ãããããã®äžæ¹ã§ãåœŒã®ææãšããŠã®ããã©ãŒãã³ã¹ãæè ãšããŠã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ãããããšãããã®ããŒã¿ããèªã¿åãããšãã§ããŸããç¹ã«ãé²åŸ¡çãäœãå¹Žã¯æçãäœããé²åŸ¡çãé«ãå¹Žã¯æçãé«ããšããåŸåã¯ã圌ã®äœå管çã詊åã®èµ·çšæ³ã«ã€ããŠèããäžã§éèŠãªç€ºåãäžããŠããŸãã
ãããã®æ å ±ãèžãŸããå€§è°·éžæãæå€§éã«æŽ»çšããããã«ã¯ã圌ã®äœèª¿ãã³ã³ãã£ã·ã§ã³ãåžžã«ãã§ãã¯ããææãšããŠã®èµ·çšãšæè ãšããŠã®èµ·çšãé©åã«ãã©ã³ã¹ãããããšãæ±ããããŸãããŸãã圌ã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ã®ããä»ã®èŠçŽ ãäŸãã°è©Šåã®ç¶æ³ã察æŠçžæã®ææãªã©ãèæ ®ã«å ¥ããå¿ èŠããããŸãã
ããŒã¿åæã¯ããããã®å€æãè¡ãäžã§éåžžã«æçšãªããŒã«ãšãªããŸããå€§è°·éžæã®ãããªç¹ç°ãªæèœãæã€éžæãã©ã®ããã«æŽ»çšãããã¯ãåžžã«è©Šè¡é¯èª€ã䌎ããã®ã§ãããããŒã¿ã«åºã¥ãåæã«ãããããç§åŠçãã€å¹ççãªæŠç¥ãç«ãŠãããšãå¯èœãšãªããŸãã
ä»åã®ããŒã¿åæã¯å°ãããŠã«ãªããªããšããããããŸãããããã®ããã«ãNoteableãã©ã°ã€ã³ã¯ãå·¥å€«æ¬¡ç¬¬ã§æ§ã ãªããŒã¿åæã«æŽ»çšããããšãã§ããŸãã®ã§ãçãããæ¯éã䜿ã£ãŠã¿ãŠãã ããã