Python function_base.py pycharm ValueError:对于所需数组深度太小的对象
**错误:值错误:对于所需数组,对象深度太小 主脚本:Python function_base.py pycharm ValueError:对于所需数组深度太小的对象,python,pycharm,Python,Pycharm,**错误:值错误:对于所需数组,对象深度太小 主脚本: import numpy as np from matplotlib import pyplot as plt import pandas as pd import seaborn as sns import yfinance as yf from sklearn import linear_model from sklearn.naive_bayes import GaussianNB from sklearn.svm import SV
import numpy as np
from matplotlib import pyplot as plt
import pandas as pd
import seaborn as sns
import yfinance as yf
from sklearn import linear_model
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
from sklearn.neural_network import MLPClassifier
import datetime
import backtrader as bt
from backtrader.feeds import PandasData
import backtrader.analyzers as btanalyzers
plt.style.use('seaborn-colorblind')
ticker = 'TSLA'
start = datetime.datetime(2000, 1, 1)
end = datetime.datetime(2030, 12, 28)
stock = yf.download(ticker, progress=True, actions=True, start=start, end=end)
stock = stock['Adj Close']
stock = pd.DataFrame(stock)
stock.head()
stock.rename(columns = {"Adj Close": ticker}, inplace=True)
stock['returns'] = np.log(stock/stock.shift(1))
stock.dropna(inplace=True)
stock['direction'] = np.sign(stock['returns']).astype(int)
stock.head(10)
fig, ax = plt.subplots(2, 1, sharex=True, figsize=(12, 6))
ax[0].plot(stock[ticker], label = f'{ticker} Adj Close')
ax[0].set(title=f'{ticker} Closing Price', ylabel='Price')
ax[0].grid(True)
ax[0].legend()
ax[1].plot(stock['returns'], label = 'Daily Returns')
ax[1].set(title=f'{ticker} Daily Returns', ylabel='Returns')
ax[1].grid(True)
ax[1].legend()
lags= [1,2,3,4,5]
cols = []
for lag in lags:
col = f'rtn_lag{lag}'
stock[col] = stock['returns'].shift(lag)
cols.append(col)
stock.dropna(inplace=True)
stock.head(2)
def create_bins(data, bins=[0]):
global col_bin
cols_bin = []
for col in cols:
col_bin = col+'_bin'
data[col_bin] = np.digitize(data[col], bins=bin)
cols_bin.append(col_bin)
create_bins(stock)
stock.head()
print(stock)
plt.show()
导致错误的脚本(function_base.py):
import numpy as np
from matplotlib import pyplot as plt
import pandas as pd
import seaborn as sns
import yfinance as yf
from sklearn import linear_model
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
from sklearn.neural_network import MLPClassifier
import datetime
import backtrader as bt
from backtrader.feeds import PandasData
import backtrader.analyzers as btanalyzers
plt.style.use('seaborn-colorblind')
ticker = 'TSLA'
start = datetime.datetime(2000, 1, 1)
end = datetime.datetime(2030, 12, 28)
stock = yf.download(ticker, progress=True, actions=True, start=start, end=end)
stock = stock['Adj Close']
stock = pd.DataFrame(stock)
stock.head()
stock.rename(columns = {"Adj Close": ticker}, inplace=True)
stock['returns'] = np.log(stock/stock.shift(1))
stock.dropna(inplace=True)
stock['direction'] = np.sign(stock['returns']).astype(int)
stock.head(10)
fig, ax = plt.subplots(2, 1, sharex=True, figsize=(12, 6))
ax[0].plot(stock[ticker], label = f'{ticker} Adj Close')
ax[0].set(title=f'{ticker} Closing Price', ylabel='Price')
ax[0].grid(True)
ax[0].legend()
ax[1].plot(stock['returns'], label = 'Daily Returns')
ax[1].set(title=f'{ticker} Daily Returns', ylabel='Returns')
ax[1].grid(True)
ax[1].legend()
lags= [1,2,3,4,5]
cols = []
for lag in lags:
col = f'rtn_lag{lag}'
stock[col] = stock['returns'].shift(lag)
cols.append(col)
stock.dropna(inplace=True)
stock.head(2)
def create_bins(data, bins=[0]):
global col_bin
cols_bin = []
for col in cols:
col_bin = col+'_bin'
data[col_bin] = np.digitize(data[col], bins=bin)
cols_bin.append(col_bin)
create_bins(stock)
stock.head()
print(stock)
plt.show()
(注意:脚本的缩进长度太长了,所以我将只显示出错的行;脚本附带pycharm,所以它应该运行正常,但它没有!)
mono=\u单调性(bins)
函数\u base.py的完整代码如下:函数\u base.py的完整代码如下: