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()))))


numpy.datetime64('2017-09-21T05:47:34.769071000')
datetime.datetime(2017, 9, 21, 5, 47, 34, 772420)
Timestamp('2017-09-21 05:47:34.774730')
datetime.datetime(2017, 9, 21, 5, 47, 34, 777530)
Timestamp('2017-09-21 05:47:34.779603')
numpy.datetime64('2017-09-21T05:47:34.782041')

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))


0.488
0.594

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)