新浪博客不能插入代码是一件非常尴尬的事情。
这里将介绍如何在新浪博客中加入代码块及其高亮的方法。
所需工具:
(1)XAMPP数据创建软件
(2)wordpress 与 codecolorer
步骤:
(1)安装wordpress 与 codecolorer 插件
参考网址: http://jingyan.baidu.com/article/86112f13582848273797879b.html
1)下载XAMPP、wordpress、codecolorer
2)安装XAMPP并创建数据库
3)安装wordpress
4)安装codecolorer
5)将程序代码发布在wordpress页面上
(2)打开新浪博客,在博客编辑区显示源代码的情况下输入以下内容,注意将“[”替换为“<”,这里是为了方便显示出来。
[tbody>
[tr >
[td >
[div style="margin:0; padding:30px 0 0 28px; background-color:rgb(26, 26, 26); width:500px; height:500px; overflow:scroll;color:rgb(255, 255, 255);">
(代码填充区)
[/div>
[/td>
[/tr>
[/tbody>
[/table>
[br>
[br>
(3)打开博客编辑界面,将wordpress预览的代码块复制到CSDN的可视化编辑区后点击源代码切换到源代码编辑区,复制从 [ div class="python codecolorer" >一直到[ /span>[/div> 的所有代码,这段代码包含了所有代码的文本信息。
(4)将第(3)步中的代码复制到第(2)步的代码填充区即可。
(5)保存并发表博客。
实际效果:
# -*- coding: utf-8 -*-
"""
Created on Sun Feb 28 10:04:26 2016
PCA source code
@author: liudiwei
"""
import numpy as np
import pandas as pd
import matplotlib. pyplot as plt
def meanX (dataX ):
return np. mean (dataX ,axis = 0 ) #axis=0表示按照列来求均值,如果输入list,则axis=1
def variance (X ):
m , n = np. shape (X )
mu = meanX (X )
muAll = np. tile (mu , (m , 1 ) )
X1 = X - muAll
variance = 1./m * np. diag (X1. T * X1 )
return variance
def normalize (X ):
m , n = np. shape (X )
mu = meanX (X )
muAll = np. tile (mu , (m , 1 ) )
X1 = X - muAll
X2 = np. tile (np. diag (X. T * X ) , (m , 1 ) )
XNorm = X1/X2
return XNorm
"""
参数:
- XMat:传入的是一个numpy的矩阵格式,行表示样本数,列表示特征
- k:表示取前k个特征值对应的特征向量
返回值:
- finalData:参数一指的是返回的低维矩阵,对应于输入参数二
- reconData:参数二对应的是移动坐标轴后的矩阵
"""
def pca (XMat , k ):
average = meanX (XMat )
m , n = np. shape (XMat )
data_adjust = [ ]
avgs = np. tile (average , (m , 1 ) )
data_adjust = XMat - avgs
covX = np. cov (data_adjust. T ) #计算协方差矩阵
featValue , featVec = np. linalg. eig (covX ) #求解协方差矩阵的特征值和特征向量
index = np. argsort (-featValue ) #按照featValue进行从大到小排序
finalData = [ ]
if k > n:
print "k must lower than feature number"
return
else:
#注意特征向量时列向量,而numpy的二维矩阵(数组)a[m][n]中,a[1]表示第1行值
selectVec = np. matrix (featVec. T [index [:k ] ] ) #所以这里需要进行转置
finalData = data_adjust * selectVec. T
reconData = (finalData * selectVec ) + average
return finalData , reconData
def loaddata (datafile ):
return np. array (pd. read_csv (datafile ,sep = "\t" ,header =- 1 ) ). astype (np. float )
def plotBestFit (data1 , data2 ):
dataArr1 = np. array (data1 )
dataArr2 = np. array (data2 )
m = np. shape (dataArr1 ) [ 0 ]
axis_x1 = [ ]
axis_y1 = [ ]
axis_x2 = [ ]
axis_y2 = [ ]
for i in range (m ):
axis_x1. append (dataArr1 [i , 0 ] )
axis_y1. append (dataArr1 [i , 1 ] )
axis_x2. append (dataArr2 [i , 0 ] )
axis_y2. append (dataArr2 [i , 1 ] )
fig = plt. figure ( )
ax = fig. add_subplot ( 111 )
ax. scatter (axis_x1 , axis_y1 , s = 50 , c = 'red' , marker = 's' )
ax. scatter (axis_x2 , axis_y2 , s = 50 , c = 'blue' )
plt. xlabel ( 'x1' ) ; plt. ylabel ( 'x2' ) ;
plt. savefig ( "outfile.png" )
plt. show ( )
#简单测试
#数据来源:
def test ( ):
X = [ [ 2.5 , 0.5 , 2.2 , 1.9 , 3.1 , 2.3 , 2 , 1 , 1.5 , 1.1 ] ,
[ 2.4 , 0.7 , 2.9 , 2.2 , 3.0 , 2.7 , 1.6 , 1.1 , 1.6 , 0.9 ] ]
XMat = np. matrix (X ). T
k = 2
return pca (XMat , k )
#根据数据集data.txt
def main ( ):
datafile = "data.txt"
XMat = loaddata (datafile )
k = 2
return pca (XMat , k )
if __name__ == "__main__":
finalData , reconMat = main ( )
plotBestFit (finalData , reconMat )