In [7]:
import numpy as np
import pandas as pd
from datetime import datetime
from IPython.display import display
display(np.datetime64(datetime.utcnow(), 'ns'))
display(np.datetime64(datetime.utcnow()).astype(datetime))
display(pd.Timestamp(datetime.utcnow()))
display(pd.Timestamp(datetime.utcnow()).to_pydatetime())
display(pd.Timestamp(np.datetime64(datetime.utcnow())))
display(np.datetime64(pd.Timestamp(np.datetime64(datetime.utcnow()))))
In [ ]:
import numpy as np
data = np.array([1, 2, 3, 4, 5], dtype=np.float64)
print(data.shape)
print(data[2])
data = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.float64)
print(data.shape)
print(data[1])
print(data[1][2])
data = np.zeros(shape=(6, 3), dtype=np.float64)
data = np.linspace(0, 17, 18, dtype=np.float64).reshape(6, 3)
data = np.arange(0, 18, 1, dtype=np.float64).reshape(6, 3)
data
In [ ]:
import numpy as np
data = np.arange(0, 18, 1).reshape(6, 3)
print(data)
print(data.size)
print(data.shape)
data1 = data[1:3, 0:2]
print(data1)
data2 = data[3:]
print(data2)
data3 = data[:, 0]
print(data3)
data4 = data[:, 0:1]
print(data4)
data5 = data[:, 1:]
print(data5)
In [ ]:
import numpy as np
data_num = 20
data = np.empty(shape=(data_num, 3))
for i in range(0, data_num):
data[i] = [i, i, i]
data
In [ ]:
import numpy as np
data = np.linspace(0, 19, 20).reshape(-1, 2)
data = np.array([10, 11, 12, 14, 15, 17, 18, 19])
# print(data.searchsorted(12, side='left'))
# print(data.searchsorted(13, side='left'))
# print(data.searchsorted(14, side='left'))
# print(data.searchsorted(15, side='right'))
# print(data.searchsorted(16, side='right'))
# print(data.searchsorted(17, side='right'))
def get_slice(data, start, end):
left = data.searchsorted(start, side='left')
right = data.searchsorted(end, side='right')
return data[left : right]
print(get_slice(data, 12, 18))
print(get_slice(data, 13, 18))
print(get_slice(data, 12, 16))
print(get_slice(data, 13, 16))
print(get_slice(data, 12, 12))
print(get_slice(data, 13, 13))
In [ ]:
import numpy as np
d0 = np.array([0, 0, 0])
d1 = np.array([1, 1, 1])
np.concatenate((d0, d1), axis=0)
np.append(d0, d1)
d2 = np.array([[2, 2, 2], [3, 3, 3]])
d3 = np.array([[4, 4, 4], [5, 5, 5]])
np.concatenate((d2, d3), axis=0)
np.append(d2, d3)
np.append(d2, d1)
np.append(d2, [6, 6, 6])
np.append(d2, [7, 7, 7, 7])
data = np.array([], dtype=np.float64)
for i in range(0, 10):
data = np.append(data, [i, i, i])
data.reshape(-1, 3)
In [ ]:
import numpy as np
d0 = np.array([0, 0, 0])
d1 = np.array([1, 1, 1])
np.vstack((d0, d1))
d2 = np.array([[2, 2, 2], [3, 3, 3]])
d3 = np.array([[4, 4, 4], [5, 5, 5]])
np.vstack((d2, d3))
np.vstack((d2, d0))
np.vstack((d2, [6, 6, 6]))
data = None
for i in range(0, 10):
if data is None:
data = np.array([i, i, i])
else:
data = np.vstack((data, [i, i, i]))
data
In [141]:
import random
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn import svm
data_num = 100
data = np.empty(shape=(data_num, 4))
for i in range(0, data_num):
data[i] = [random.choice([-1, 1]), random.randint(0, 10), random.uniform(0, 10), random.uniform(0, 10)]
x = data[:, 1:]
y = data[:, 0]
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=1)
clf = svm.SVC()
clf.fit(x_train, y_train)
test_prediction = clf.predict(x_test)
train_prediction = clf.predict(x_train)
test_prediction_result = []
for i in range(0, len(test_prediction)):
if y_test[i] == test_prediction[i]:
test_prediction_result.append(1)
else:
test_prediction_result.append(0)
train_prediction_result = []
for i in range(0, len(train_prediction)):
if y_train[i] == train_prediction[i]:
train_prediction_result.append(1)
else:
train_prediction_result.append(0)
print(sum(test_prediction_result) / len(test_prediction_result))
print(sum(train_prediction_result) / len(train_prediction_result))
In [ ]:
import numpy as np
FIELDS = {
'y': np.float64,
'close': np.float64,
'sma5': np.float64,
'sma30': np.float64
}
data_type = np.dtype([(name, FIELDS[name]) for name in FIELDS.keys()])
print(data_type)
data = np.zeros(shape=(6, ), dtype=data_type)
data
In [ ]:
import numpy as np
FIELDS = {
'datetime': np.uint64,
'open': np.dtype('float64'),
'close': np.dtype('float64'),
'high': np.dtype('float64'),
'low': np.dtype('float64'),
'volume': np.uint64,
'total_turnover': np.uint64,
'limit_up': np.dtype('float64'),
'limit_down': np.dtype('float64')
}
dtype = np.dtype([(f, FIELDS[f]) for f in FIELDS.keys()])
result = np.zeros(shape=(), dtype=dtype)
result['datetime'] = 20170310000
result['open'] = 100
result['close'] = 1000
result['high'] = 200
result['low'] = 1
print(result['open'])
In [ ]:
# Numpy Structured Array
import numpy as np
FIELDS = {
'datetime': np.uint64,
'open': np.dtype('float64'),
'close': np.dtype('float64'),
'high': np.dtype('float64'),
'low': np.dtype('float64'),
'volume': np.uint64,
'total_turnover': np.uint64,
'limit_up': np.dtype('float64'),
'limit_down': np.dtype('float64')
}
dtype = np.dtype([(f, FIELDS[f]) for f in FIELDS.keys()])
result = np.zeros(shape=(6,), dtype=dtype)
for i in range(6):
result[i] = (i, ) * 9
print(result)
pos = result['close'].searchsorted(3)
print(pos)
print(result[pos])
pos = result['close'].searchsorted(3, side='right')
print(pos)
print(result[pos])
print(result[result['high'] > 2])
print(result[['open', 'close']])
In [ ]:
import numpy as np
import pandas as pd
from datetime import datetime
FIELDS = {
'date': 'datetime64[m]',
'open': np.float64
}
dtype = np.dtype([(f, FIELDS[f]) for f in FIELDS.keys()])
d = np.zeros(shape=(6,), dtype=dtype)
for i in range(0, 6):
d[i]['date'] = datetime.now()
d[i]['open'] = i
d[0][0]
d[0][0].astype(datetime)
d[0:3][['date', 'open']]
d['open']
# pd.DataFrame(d)
In [ ]:
import numpy as np
data = np.linspace(0, 20, 21).reshape(-1, 3 )
print(data)
def func(x):
return x[0] * 3 + x[1] * 2 + x[2]
np.apply_along_axis(func, axis=1, arr=data)
In [ ]:
import numpy as np
d0 = np.array([1, 2, 3])
d1 = np.array([4, 5, 6])
print(d0 + d1)
print(d0 * d1)
np.dot(d0, d1)
In [ ]:
import numpy as np
d = np.arange(0, 12, 1).reshape(4, 3)
print(d)
print(d[[0, 1, 2], [1, 2, 0]])
print(d[range(0, 3), [1, 2, 0]])
print(d[0:3, [1, 2, 0]])
In [ ]:
xarr=np.array([1, 2, 3, 4, 5])
yarr=np.array([11, 12, 13, 14, 15])
cond=np.array([True,False,True,True,False])
np.where(cond,xarr,yarr)
In [ ]:
def search_sequence_numpy(arr,seq):
Na, Nseq = arr.size, seq.size
r_seq = np.arange(Nseq)
M = (arr[np.arange(Na-Nseq+1)[:,None] + r_seq] == seq).all(1)
if M.any() > 0:
return np.where(M)[0]
else:
return []
a = np.array([1,2,3,2,2,3,3,2,3,1,2])
b = np.array([2, 3])
search_sequence_numpy(a, b)