一、行列式连接concatenate函数,axis=0是垂直拼接,axis=1是水平拼接

 x=np.array([[1.0,],[,]]);
y=np.array([[5.0,],[,]]);
z=np.concatenate((x,y),axis=);
print x,'\n\n'
print y,'\n\n' print z
[[ .  .]
[ . .]] [[ . .]
[ . .]] [[ . .]
[ . .]
[ . .]
[ . .]]

另一种方法有:

z = vstack((x,y)) # Same as z = concatenate((x,y),axis = 0)

z = hstack((x,y)) # Same as z = concatenate((x,y),axis = 1)

二、行列式选取可能降维

>>> x = array([[1.0,2],[3,4]])
>>> x[:1,:] # Row 1, all columns, 2-dimensional
array([[ 1., 2.]])
>>> x[0,:] # Row 1, all columns, dimension reduced
array([ 1., 2.])


2、查看行列式的维数使用,np.ndim(A)函数

3、重复扩展,相当于在方括号内元素扩展

>>> x = array([[0.0]*3]*3) # *3 repeats the list 3 times
>>> x
array([[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])

4、修改行列式元素值时,需要注意类型。可能会被修改,numpy中,会自动将插入的数据类型修改为行列式类型

>>> x = [, , , , ] # Integers
>>> y = array(x)
>>> y.dtype
dtype(’int32’)
>>> y[] = 3.141592
>>> y
array([, , , , ])

5、行列式的转置和重改维度大小

B=A.T#行列式转置

B=np.reshape(A,(m,n)),#m,n是要更后改的行数和列数

6、flat切片,他将行列式转换成一维行列式,进行切片

a=np.arange();
b=np.reshape(a,(,));
b.flat[:]
array([, , , , ])

7、行列式复制三种方法(1)copy()

import copy as cp
a=np.arange(10);
b=np.reshape(a,(2,5));
x1=cp.deepcopy(b[0]);#函数法
x2=b[:,0].copy();#方法
x3=np.array(b[0]);#array行列式

print b
print b[0];
print x1
print x2
print x3,'\n\n\n'

x1[0]=12;
print b
print b[0];
print x1
print x2
print x3,'\n\n\n'

x2[0]=20;
print b
print b[0];
print x1
print x2
print x3,'\n\n\n'

x3[0]=50
x2[0]=20;
print b
print b[0];
print x1
print x2
print x3,'\n\n\n'

[[0 1 2 3 4]
[5 6 7 8 9]]
[0 1 2 3 4]
[0 1 2 3 4]
[0 5]
[0 1 2 3 4] [[0 1 2 3 4]
[5 6 7 8 9]]
[0 1 2 3 4]
[12 1 2 3 4]
[0 5]
[0 1 2 3 4] [[0 1 2 3 4]
[5 6 7 8 9]]
[0 1 2 3 4]
[12 1 2 3 4]
[20 5]
[0 1 2 3 4] [[0 1 2 3 4]
[5 6 7 8 9]]
[0 1 2 3 4]
[12 1 2 3 4]
[20 5]
[50 1 2 3 4]

8、导入模块

import pylab as pl
import scipy as sp
import numpy as np

9、数组运算

(1)加减运算都符合线性代数运算

(2)乘运算要注意数组的广播机制,还不太理解???????????

一般的:数组运算是元素与元素相乘,矩阵相乘是符合线性代数运算机制的

想要改变数组的运算机制符合线性代数运算机制可以通过函数np.dot(A,B)

x=np.ones((,));
y=np.ones((,));
print np.dot(x,y) [[ . .]
[ . .]]

(3)除运算,数组和矩阵都是元素与元素之间的运算。

x=np.ones((,))*;
y=np.ones((,))*;
x/y array([[ ., ., ., .],
[ ., ., ., .]])
x=np.mat(np.ones((,))*)
y=np.mat(np.ones((,))*)
x/y matrix([[ ., ., ., .],
[ ., ., ., .]])

(4)指数运算

对于数组是元素的指数运算

x=np.array([,,]);
x** array([, , ])

对于矩阵是Z=A**m,是矩阵A碟乘m次,对于m在python中必须是整数,可以是负数,如果是负数,则Z=inv(A**(abs(m)));

x=np.mat(np.reshape(np.arange(),(,)))
print x
x** [[ ]
[ ]
[ ]] matrix([[ , , ],
[ , , ],
[ , , ]])

(5)矩阵转置运算A.transpose(),transpose(A),A.T都表示矩阵A的转置

x=np.mat(np.random.randn(,))
print x;
x.T*x [[-1.02490428 1.76366191]
[ 0.48344916 -0.36091476]] matrix([[ 1.28415188, -1.98206858],
[-1.98206858, 3.2407628 ]])

10、数组切片的不同

当使用切片或标量进行赋值时,不会复制内容。而是产生一个视图。当使用索引或逻辑值进行赋值时,会对原始数组进行复制。

a=np.arange();
​
b=a[:];
c = a[[,,,]]
print a
print b
b[]=;
print a
print b
​
print c
​
[ ]
[ ]
[ ]
[ ]
[ ]

introduction to python for statistics,analysis笔记2的更多相关文章

  1. introduction to python for statistics,analysis笔记3

    一.产生数组和矩阵 1.linspace(start,end,number),产生在start和end数之间number个数 >>> x = linspace(, , ) >& ...

  2. 学习笔记之Python for Data Analysis

    Python for Data Analysis, 2nd Edition https://www.safaribooksonline.com/library/view/python-for-data ...

  3. 数据分析---《Python for Data Analysis》学习笔记【04】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

  4. 数据分析---《Python for Data Analysis》学习笔记【03】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

  5. 数据分析---《Python for Data Analysis》学习笔记【02】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

  6. 数据分析---《Python for Data Analysis》学习笔记【01】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

  7. An Introduction to Stock Market Data Analysis with R (Part 1)

    Around September of 2016 I wrote two articles on using Python for accessing, visualizing, and evalua ...

  8. 《python for data analysis》第五章,pandas的基本使用

    <利用python进行数据分析>一书的第五章源码与读书笔记 直接上代码 # -*- coding:utf-8 -*-# <python for data analysis>第五 ...

  9. Requests:Python HTTP Module学习笔记(一)(转)

    Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...

随机推荐

  1. IIS-将iis直接指向.net代码会出现错误

    这是由于没有bin文件导致的,将bin文件加上之后就可以了.

  2. IIS-设置session时间

    session会话类型

  3. Maven私库安装与配置

    Maven私库安装与配置 https://www.cnblogs.com/dengyulinBlog/p/6398310.html

  4. Android的View和ViewGroup分析

    1. 概念 Android中的View与我们曾经理解的"视图"不同.在Android中,View比视图具有更广的含义,它包括了用户交互和显示,更像Windows操作系统中的wind ...

  5. 通过WebRTC实现实时视频通信(三)

    通过WebRTC实现实时视频通信(一) 通过WebRTC实现实时视频通信(二) 通过WebRTC实现实时视频通信(三) 在这篇文章中我们继续了解WebRTC的相关API,RTCPeerConnecti ...

  6. 能说明你的Javascript技术很烂的五个原因

    Javascript在互联网上名声很臭,但你又很难再找到一个像它这样如此动态.如此被广泛使用.如此根植于我们的生活中的另外一种语言.它的低学习门槛让很多人都称它为学前脚本语言,它另外一个让人嘲笑的东西 ...

  7. line-height测量及使用

    1.line-height定义 line-height表示行高,即两行文字基线间的距离. 以下是图示说明: 行高是2条红线之间的距离,即:1+2+3+4 在实际测量中,基线不好找,可测量顶线到顶线的距 ...

  8. Eventually Consistent(最终一致性)(转)

    应该说搞分布式系统必读的文章了,转过来,这是2008年12月Werner revise过的版本,先贴上内容简介:分布式系统的CAP理论 CAP理论(data consistency, system a ...

  9. __str__被print函数调用,目的是打印类的内容到屏幕上

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #__str__被print函数调用,目的是打印类的内容到屏幕上 class APIError(): def ...

  10. IP欺骗:要虚拟很多IP的情况:在一台机上虚拟的IP跨网段的处理,可通过在服务器端添加路由来实现

    要虚拟很多IP的情况:在一台机上虚拟的IP跨网段的处理,可通过在服务器端添加路由来实现. 例: [服务器] IP:192.168.0.1 [测试机] IP:192.168.0.2 测试机上添加的虚拟 ...