Documentation ¶
Index ¶
- Constants
- Variables
- func AnyToBool(v any) bool
- func AnyToFloat64(v any) float64
- func AnyToInt64(v any) int64
- func AnyToString(v any) string
- func DefaultFormatter(v interface{}) string
- func DefaultIsEqualFunc(a, b interface{}) bool
- func IsEmpty(s string) bool
- func IsNaN(f float64) bool
- func Mean[T algorithms.Number](x []T) float64
- func NaN() float64
- func ParseBool(s string, v any) bool
- func ParseFloat(s string, v any) float64
- func ParseInt(s string, v any) int64
- func Repeat[T GenericType](a T, n int) []T
- func Repeat2[T GenericType](dst []T, a T, n int) []T
- func SetParseExceptions(enabled bool)
- func StringIsNaN(s string) bool
- type AlphaType
- type DType
- type DataFrame
- func (df DataFrame) Dims() (int, int)
- func (df *DataFrame) Error() error
- func (df DataFrame) Names() []string
- func (df DataFrame) Ncol() int
- func (df DataFrame) Nrow() int
- func (df DataFrame) Records() [][]string
- func (df DataFrame) String() (str string)
- func (df DataFrame) Subset(start, end int) DataFrame
- func (df DataFrame) Types() []string
- func (df DataFrame) WriteCSV(out any, options ...WriteOption) error
- type EW
- type ExponentialMovingWindow
- type GenericType
- type LoadOption
- func DefaultType(t Type) LoadOption
- func DetectTypes(b bool) LoadOption
- func HasHeader(b bool) LoadOption
- func NaNValues(nanValues []string) LoadOption
- func Names(names ...string) LoadOption
- func WithComments(b rune) LoadOption
- func WithDelimiter(b rune) LoadOption
- func WithLazyQuotes(b bool) LoadOption
- func WithTypes(coltypes map[string]Type) LoadOption
- type NDFrame
- func (self *NDFrame) Copy() Series
- func (self *NDFrame) Empty() Series
- func (self *NDFrame) Len() int
- func (self *NDFrame) Mean() float64
- func (self *NDFrame) Name() string
- func (self *NDFrame) Records() []string
- func (self *NDFrame) Rename(n string)
- func (self *NDFrame) Repeat(x any, repeats int) Series
- func (self *NDFrame) Rolling(window int) RollingWindow
- func (self *NDFrame) Shift(periods int) Series
- func (self *NDFrame) StdDev() float64
- func (self *NDFrame) Subset(start, end int, opt ...any) Series
- func (self *NDFrame) Type() Type
- func (self *NDFrame) Values() any
- type RollingWindow
- type Series
- type SeriesBool
- func (self *SeriesBool) Copy() Series
- func (self *SeriesBool) Empty() Series
- func (self *SeriesBool) Len() int
- func (self *SeriesBool) Mean() float64
- func (self *SeriesBool) Name() string
- func (self *SeriesBool) Records() []string
- func (self *SeriesBool) Rename(n string)
- func (self *SeriesBool) Repeat(x any, repeats int) Series
- func (self *SeriesBool) Rolling(window int) RollingWindow
- func (self *SeriesBool) Shift(periods int) Series
- func (self *SeriesBool) StdDev() float64
- func (self *SeriesBool) Subset(start, end int, opt ...any) Series
- func (self *SeriesBool) Type() Type
- func (self *SeriesBool) Values() any
- type SeriesFloat64
- func (self *SeriesFloat64) Copy() Series
- func (s *SeriesFloat64) EWM(alpha EW) ExponentialMovingWindow
- func (self *SeriesFloat64) Empty() Series
- func (self *SeriesFloat64) Len() int
- func (self *SeriesFloat64) Mean() float64
- func (self *SeriesFloat64) Name() string
- func (self *SeriesFloat64) Records() []string
- func (self *SeriesFloat64) Rename(n string)
- func (self *SeriesFloat64) Repeat(x any, repeats int) Series
- func (self *SeriesFloat64) Rolling(window int) RollingWindow
- func (self *SeriesFloat64) Shift(periods int) Series
- func (self *SeriesFloat64) StdDev() float64
- func (self *SeriesFloat64) Subset(start, end int, opt ...any) Series
- func (self *SeriesFloat64) Type() Type
- func (self *SeriesFloat64) Values() any
- type SeriesInt64
- func (self *SeriesInt64) Copy() Series
- func (self *SeriesInt64) Empty() Series
- func (self *SeriesInt64) Len() int
- func (self *SeriesInt64) Mean() float64
- func (self *SeriesInt64) Name() string
- func (self *SeriesInt64) Records() []string
- func (self *SeriesInt64) Rename(n string)
- func (self *SeriesInt64) Repeat(x any, repeats int) Series
- func (self *SeriesInt64) Rolling(window int) RollingWindow
- func (self *SeriesInt64) Shift(periods int) Series
- func (self *SeriesInt64) StdDev() float64
- func (self *SeriesInt64) Subset(start, end int, opt ...any) Series
- func (self *SeriesInt64) Type() Type
- func (self *SeriesInt64) Values() any
- type SeriesString
- func (self *SeriesString) Copy() Series
- func (self *SeriesString) Empty() Series
- func (self *SeriesString) Len() int
- func (self *SeriesString) Mean() float64
- func (self *SeriesString) Name() string
- func (self *SeriesString) Records() []string
- func (self *SeriesString) Rename(n string)
- func (self *SeriesString) Repeat(x any, repeats int) Series
- func (self *SeriesString) Rolling(window int) RollingWindow
- func (self *SeriesString) Shift(periods int) Series
- func (self *SeriesString) StdDev() float64
- func (self *SeriesString) Subset(start, end int, opt ...any) Series
- func (self *SeriesString) Type() Type
- func (self *SeriesString) Values() any
- type StringFormatter
- type Type
- type WriteOption
Constants ¶
const ( SERIES_TYPE_INVAILD = "unknown" // 未知类型 SERIES_TYPE_BOOL = "bool" // 布尔类型 SERIES_TYPE_INT = "int" // int64 SERIES_TYPE_FLOAT = "float" // float64 SERIES_TYPE_STRING = "string" // string )
Supported Series Types
const ( Nil2Bool = false // 空指针转int64 BoolNaN = false // int64 无效值 True2Bool = true // true转int64 False2Bool = false // false 转int64 StringBad2Bool = false // 字符串解析int64异常 StringTrue2Bool = true // 字符串true转int64 StringFalse2Bool = false // 字符串false转int64 )
const ( True2Float float64 = float64(1) // true转float64 False2Float float64 = float64(0) StringNil2Float float64 = float64(0) // deprecated: 字符串空指针转float64 StringBad2Float float64 = float64(0) // deprecated: 字符串解析float64异常 StringTrue2Float float64 = float64(1) // 字符串true转float64 StringFalse2Float float64 = float64(0) // 字符串false转float64 )
const ( Nil2Int = int64(0) // 空指针转int64 IntNaN = int64(0) // int64 无效值 True2Int = int64(1) // true转int64 False2Int = int64(0) // false 转int64 StringBad2Int = int64(0) // 字符串解析int64异常 StringTrue2Int = int64(1) // 字符串true转int64 StringFalse2Int = int64(0) // 字符串false转int64 )
const ( StringNaN = "NaN" // 字符串NaN Nil2String = "NaN" // nil指针转string True2String = "true" // true转string False2String = "false" // false转string )
Variables ¶
var ( // IgnoreParseExceptions 忽略解析异常 IgnoreParseExceptions bool = true )
var ( // Nil2Float nil指针转换float64 Nil2Float = float64(0) )
Functions ¶
func DefaultFormatter ¶
func DefaultFormatter(v interface{}) string
DefaultFormatter will return a string representation of the data in a particular row.
func DefaultIsEqualFunc ¶
func DefaultIsEqualFunc(a, b interface{}) bool
DefaultIsEqualFunc is the default comparitor to determine if two values in the series are the same.
func Mean ¶
func Mean[T algorithms.Number](x []T) float64
Mean gonum.org/v1/gonum/stat不支持整型, 每次都要转换有点难受啊
func ParseFloat ¶
ParseFloat 字符串转float64 任意组合的nan字符串都会被解析成NaN
Types ¶
type AlphaType ¶
type AlphaType int
const ( // Specify smoothing factor α directly, 0<α≤1. AlphaNil AlphaType = iota // Specify decay in terms of center of mass, α=1/(1+com), for com ≥ 0. AlphaCom // Specify decay in terms of span, α=2/(span+1), for span ≥ 1. AlphaSpan // Specify decay in terms of half-life, α=1−exp(−ln(2)/halflife), for halflife > 0. AlphaHalflife )
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.ewm.html
type DataFrame ¶
type DataFrame struct { // deprecated: Use Error() instead Err error // contains filtered or unexported fields }
DataFrame 以gota的DataFrame的方法为主, 兼顾新流程, 避免单元格元素结构化
func LoadRecords ¶
func LoadRecords(records [][]string, options ...LoadOption) DataFrame
LoadRecords creates a new DataFrame based on the given records.
func LoadStructs ¶
func LoadStructs(i interface{}, options ...LoadOption) DataFrame
LoadStructs creates a new DataFrame from arbitrary struct slices.
LoadStructs will ignore unexported fields inside an struct. Note also that unless otherwise specified the column names will correspond with the name of the field.
You can configure each field with the `dataframe:"name[,type]"` struct tag. If the name on the tag is the empty string `""` the field name will be used instead. If the name is `"-"` the field will be ignored.
Examples:
// field will be ignored field int // Field will be ignored Field int `dataframe:"-"` // Field will be parsed with column name Field and type int Field int // Field will be parsed with column name `field_column` and type int. Field int `dataframe:"field_column"` // Field will be parsed with column name `field` and type string. Field int `dataframe:"field,string"` // Field will be parsed with column name `Field` and type string. Field int `dataframe:",string"`
If the struct tags and the given LoadOptions contradict each other, the later will have preference over the former.
func NewDataFrame ¶
NewDataFrame is the generic DataFrame constructor
func ReadCSV ¶
func ReadCSV(in any, options ...LoadOption) DataFrame
ReadCSV reads a CSV file from a io.Reader and builds a DataFrame with the resulting records. 支持文件名和io两种方式读取数据
func (DataFrame) Subset ¶
Subset returns a subset of the rows of the original DataFrame based on the Series subsetting indexes.
type EW ¶
type EW struct { Com float64 // 根据质心指定衰减 Span float64 // 根据跨度指定衰减 Halflife float64 // 根据半衰期指定衰减 Alpha float64 // 直接指定的平滑因子α Adjust bool // 除以期初的衰减调整系数以核算 相对权重的不平衡(将 EWMA 视为移动平均线) IgnoreNA bool // 计算权重时忽略缺失值 }
EW (Factor) 指数加权(EW)计算Alpha 结构属性非0即为有效启动同名算法
type ExponentialMovingWindow ¶
type ExponentialMovingWindow struct {
// contains filtered or unexported fields
}
ExponentialMovingWindow 加权移动窗口
func (ExponentialMovingWindow) Mean ¶
func (w ExponentialMovingWindow) Mean() Series
type GenericType ¶
GenericType Series支持的所有类型
type LoadOption ¶
type LoadOption func(*loadOptions)
LoadOption is the type used to configure the load of elements
func DefaultType ¶
func DefaultType(t Type) LoadOption
DefaultType sets the defaultType option for loadOptions.
func DetectTypes ¶
func DetectTypes(b bool) LoadOption
DetectTypes sets the detectTypes option for loadOptions.
func HasHeader ¶
func HasHeader(b bool) LoadOption
HasHeader sets the hasHeader option for loadOptions.
func NaNValues ¶
func NaNValues(nanValues []string) LoadOption
NaNValues sets the nanValues option for loadOptions.
func WithComments ¶
func WithComments(b rune) LoadOption
WithComments sets the csv comment line detect to remove lines
func WithDelimiter ¶
func WithDelimiter(b rune) LoadOption
WithDelimiter sets the csv delimiter other than ',', for example '\t'
func WithLazyQuotes ¶
func WithLazyQuotes(b bool) LoadOption
WithLazyQuotes sets csv parsing option to LazyQuotes
func WithTypes ¶
func WithTypes(coltypes map[string]Type) LoadOption
WithTypes sets the types option for loadOptions.
type NDFrame ¶
type NDFrame struct {
// contains filtered or unexported fields
}
NDFrame 这里本意是想做一个父类
func NewNDFrame ¶
func NewNDFrame[E GenericType](name string, rows ...E) *NDFrame
func (*NDFrame) Rolling ¶
func (self *NDFrame) Rolling(window int) RollingWindow
type RollingWindow ¶
type RollingWindow struct {
// contains filtered or unexported fields
}
RollingWindow is used for rolling window calculations.
func (RollingWindow) StdDev ¶
func (r RollingWindow) StdDev() (s Series)
StdDev returns the rolling mean.
type Series ¶
type Series interface { // Name 取得series名称 Name() string // Rename renames the series. Rename(n string) // Type returns the type of data the series holds. // 返回类型的字符串 Type() Type // NRows 获得行数 Len() int // Values 获得全部数据集 Values() any // Empty returns an empty Series of the same type Empty() Series // Records returns the elements of a Series as a []string Records() []string // Copy 复制 Copy() Series // Subset 获取子集 Subset(start, end int, opt ...any) Series // Repeat elements of an array. Repeat(x any, repeats int) Series // Shift index by desired number of periods with an optional time freq. // 使用可选的时间频率按所需的周期数移动索引. Shift(periods int) Series // Rolling creates new RollingWindow Rolling(window int) RollingWindow // Mean calculates the average value of a series Mean() float64 // StdDev calculates the standard deviation of a series StdDev() float64 }
func GenericSeries ¶
func GenericSeries[T GenericType](name string, values ...T) *Series
泛型方法, 构造序列, 比其它方式对类型的统一性要求更严格
type SeriesBool ¶
func NewSeriesBool ¶
func NewSeriesBool(name string, vals ...interface{}) *SeriesBool
NewSeriesBool creates a new series with the underlying type as bool.
func (*SeriesBool) Copy ¶
func (self *SeriesBool) Copy() Series
func (*SeriesBool) Empty ¶
func (self *SeriesBool) Empty() Series
func (*SeriesBool) Len ¶
func (self *SeriesBool) Len() int
func (*SeriesBool) Mean ¶
func (self *SeriesBool) Mean() float64
func (*SeriesBool) Name ¶
func (self *SeriesBool) Name() string
func (*SeriesBool) Records ¶
func (self *SeriesBool) Records() []string
func (*SeriesBool) Rename ¶
func (self *SeriesBool) Rename(n string)
func (*SeriesBool) Rolling ¶
func (self *SeriesBool) Rolling(window int) RollingWindow
func (*SeriesBool) Shift ¶
func (self *SeriesBool) Shift(periods int) Series
func (*SeriesBool) StdDev ¶
func (self *SeriesBool) StdDev() float64
func (*SeriesBool) Type ¶
func (self *SeriesBool) Type() Type
func (*SeriesBool) Values ¶
func (self *SeriesBool) Values() any
type SeriesFloat64 ¶
func NewSeriesFloat64 ¶
func NewSeriesFloat64(name string, vals ...interface{}) *SeriesFloat64
func (*SeriesFloat64) Copy ¶
func (self *SeriesFloat64) Copy() Series
func (*SeriesFloat64) EWM ¶
func (s *SeriesFloat64) EWM(alpha EW) ExponentialMovingWindow
EWM provides exponential weighted calculations.
func (*SeriesFloat64) Empty ¶
func (self *SeriesFloat64) Empty() Series
Empty returns an empty Series of the same type
func (*SeriesFloat64) Len ¶
func (self *SeriesFloat64) Len() int
func (*SeriesFloat64) Mean ¶
func (self *SeriesFloat64) Mean() float64
Mean calculates the average value of a series
func (*SeriesFloat64) Name ¶
func (self *SeriesFloat64) Name() string
func (*SeriesFloat64) Records ¶
func (self *SeriesFloat64) Records() []string
Records returns the elements of a Series as a []string
func (*SeriesFloat64) Rename ¶
func (self *SeriesFloat64) Rename(n string)
func (*SeriesFloat64) Rolling ¶
func (self *SeriesFloat64) Rolling(window int) RollingWindow
Rolling creates new RollingWindow
func (*SeriesFloat64) Shift ¶
func (self *SeriesFloat64) Shift(periods int) Series
func (*SeriesFloat64) StdDev ¶
func (self *SeriesFloat64) StdDev() float64
func (*SeriesFloat64) Type ¶
func (self *SeriesFloat64) Type() Type
Type returns the type of data the series holds.
func (*SeriesFloat64) Values ¶
func (self *SeriesFloat64) Values() any
type SeriesInt64 ¶
func NewSeriesInt64 ¶
func NewSeriesInt64(name string, vals ...interface{}) *SeriesInt64
NewSeriesInt64 creates a new series with the underlying type as int64.
func (*SeriesInt64) Copy ¶
func (self *SeriesInt64) Copy() Series
func (*SeriesInt64) Empty ¶
func (self *SeriesInt64) Empty() Series
func (*SeriesInt64) Len ¶
func (self *SeriesInt64) Len() int
func (*SeriesInt64) Mean ¶
func (self *SeriesInt64) Mean() float64
func (*SeriesInt64) Name ¶
func (self *SeriesInt64) Name() string
func (*SeriesInt64) Records ¶
func (self *SeriesInt64) Records() []string
Records returns the elements of a Series as a []string
func (*SeriesInt64) Rename ¶
func (self *SeriesInt64) Rename(n string)
func (*SeriesInt64) Rolling ¶
func (self *SeriesInt64) Rolling(window int) RollingWindow
func (*SeriesInt64) Shift ¶
func (self *SeriesInt64) Shift(periods int) Series
func (*SeriesInt64) StdDev ¶
func (self *SeriesInt64) StdDev() float64
func (*SeriesInt64) Type ¶
func (self *SeriesInt64) Type() Type
func (*SeriesInt64) Values ¶
func (self *SeriesInt64) Values() any
type SeriesString ¶
SeriesString 字符串类型序列
func NewSeriesString ¶
func NewSeriesString(name string, vals ...interface{}) *SeriesString
NewSeriesString creates a new series with the underlying type as string.
func (*SeriesString) Copy ¶
func (self *SeriesString) Copy() Series
func (*SeriesString) Empty ¶
func (self *SeriesString) Empty() Series
func (*SeriesString) Len ¶
func (self *SeriesString) Len() int
func (*SeriesString) Mean ¶
func (self *SeriesString) Mean() float64
func (*SeriesString) Name ¶
func (self *SeriesString) Name() string
func (*SeriesString) Records ¶
func (self *SeriesString) Records() []string
func (*SeriesString) Rename ¶
func (self *SeriesString) Rename(n string)
func (*SeriesString) Rolling ¶
func (self *SeriesString) Rolling(window int) RollingWindow
func (*SeriesString) Shift ¶
func (self *SeriesString) Shift(periods int) Series
func (*SeriesString) StdDev ¶
func (self *SeriesString) StdDev() float64
func (*SeriesString) Type ¶
func (self *SeriesString) Type() Type
func (*SeriesString) Values ¶
func (self *SeriesString) Values() any
type StringFormatter ¶
type StringFormatter func(val interface{}) string
StringFormatter is used to convert a value into a string. Val can be nil or the concrete type stored by the series.
type Type ¶
type Type = string
Type is a convenience alias that can be used for a more type safe way of reason and use Series types.
type WriteOption ¶
type WriteOption func(*writeOptions)
WriteOption is the type used to configure the writing of elements
func WriteHeader ¶
func WriteHeader(b bool) WriteOption
WriteHeader sets the writeHeader option for writeOptions.