python function tools

scipy_example

In [2]:
import numpy as np
import scipy
In [4]:
a = np.concatenate(([3], [0]*5, np.arange(-1, 1.002, 2/9.0)))
print("a = ", a)

print("np.r_[3,[0]*5,-1:1:10j] = ", np.r_[3,[0]*5,-1:1:10j])
a =  [ 3.          0.          0.          0.          0.          0.
 -1.         -0.77777778 -0.55555556 -0.33333333 -0.11111111  0.11111111
  0.33333333  0.55555556  0.77777778  1.        ]
np.r_[3,[0]*5,-1:1:10j] =  [ 3.          0.          0.          0.          0.          0.
 -1.         -0.77777778 -0.55555556 -0.33333333 -0.11111111  0.11111111
  0.33333333  0.55555556  0.77777778  1.        ]
In [5]:
print("np.mgrid[0:5:4j,0:5:4j] = ", np.mgrid[0:5:4j,0:5:4j])
np.mgrid[0:5:4j,0:5:4j] =  [[[0.         0.         0.         0.        ]
  [1.66666667 1.66666667 1.66666667 1.66666667]
  [3.33333333 3.33333333 3.33333333 3.33333333]
  [5.         5.         5.         5.        ]]

 [[0.         1.66666667 3.33333333 5.        ]
  [0.         1.66666667 3.33333333 5.        ]
  [0.         1.66666667 3.33333333 5.        ]
  [0.         1.66666667 3.33333333 5.        ]]]
In [10]:
p = np.poly1d([3,4,5])
print("p = ", p)
print("p*p=", p*p)

print('p.integ(k=6) = ', p.integ(k=6))
p =     2
3 x + 4 x + 5
p*p=    4      3      2
9 x + 24 x + 46 x + 40 x + 25
p.integ(k=6) =     3     2
1 x + 2 x + 5 x + 6

python类机制

python 类机制

In [10]:
class A(object):
    name = "A"
    def __init__(self):
        print("A Class init: ", self.name)

    def print_name(self):
        print("object name: ", self.name)

class B(object):
    name = "B"
    def __init__(self):
        print("B Class init: ", self.name)


class C(A, B):
    name = "C"
    def __init__(self):
        print("C Class init:", self.name)
        super().__init__()

    def print_name(self):
        print("C object name: ", self.name)
In [11]:
c = C()

c.print_name()
C Class init: C
A Class init:  C
C object name:  C

numpy_example

介绍numpy/scipy库的基本用法.

更多…

scala_maven_to_sbt

scala 工程使用sbt还是maven

转换maven为sbt

网上有可以直接使用maven pom.xml文件的,sbt插件。新版本sbt可能会提示找不到仓库,可以尝试本地编译。 maven转sbt插件

使用python还是scala开发spark程序?

spark 官方提供了python,java, scala,R 三种语言的封装,scala和java都建立jvm可以相互调用,R一般人用的不多,如下比较一下python 和scala开发spark程序的优缺点。

scala和python开发spark程序各自优点

pyspark优点

  1. 动态语言开发效率高,工程难度低
  2. 算法类库丰富,易于移移植现有算法到spark平台
  3. 工具支持丰富,包括jupyter notebook之类的工具,能够做到程序结果可视化,方便调优

pyspark缺点

  1. 性能差: 动态语言载加上通过py4j来和spark交互的,在计算量很大的情况下慢的可怕;
  2. 不能使用全部spark api: 因为是通过py4j调用,需要必要的封装(pyspark),不能像scala那样和java可以直接调用, 导致不能直接调用java或者scala类库。

更多…

使用nikola+spacemacs+orgmode 搭建blog

使用nikola+spacemacs搭建blog