introduction to python for statistics,analysis笔记2
一、行列式连接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的更多相关文章
- introduction to python for statistics,analysis笔记3
一.产生数组和矩阵 1.linspace(start,end,number),产生在start和end数之间number个数 >>> x = linspace(, , ) >& ...
- 学习笔记之Python for Data Analysis
Python for Data Analysis, 2nd Edition https://www.safaribooksonline.com/library/view/python-for-data ...
- 数据分析---《Python for Data Analysis》学习笔记【04】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- 数据分析---《Python for Data Analysis》学习笔记【03】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- 数据分析---《Python for Data Analysis》学习笔记【02】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- 数据分析---《Python for Data Analysis》学习笔记【01】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- 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 ...
- 《python for data analysis》第五章,pandas的基本使用
<利用python进行数据分析>一书的第五章源码与读书笔记 直接上代码 # -*- coding:utf-8 -*-# <python for data analysis>第五 ...
- Requests:Python HTTP Module学习笔记(一)(转)
Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...
随机推荐
- 内容匹配广告投放技术4:网盟CTR预估(百度文库课程)
原文:http://wbj0110.iteye.com/blog/2043065 该文是百度文库课程<计算广告学之内容匹配广告&展示广告原理.技术和实践>的课程笔记,感谢百度! 课 ...
- _com_util::ConvertBSTRToString的使用问题
#include <comutil.h> 然后调用_com_util::ConvertBSTRToString提示如下错误: error LNK2019: unresolved exter ...
- 修改linux的文件时,如何快速找到要修改的内容并修改
修改linux系统下的文件时,如果文件内容很多,不容易找到需要修改的内容,下面详细介绍linux系统下如何快速修改文件. 工具/原料 linux系统 方法/步骤 在linux系统下,找到需 ...
- Android Wi-Fi Peer-to-Peer(Android的Wi-Fi P2P对等网络)
Wi-Fi peer-to-peer(P2P,对等网络),它同意具备对应硬件的Android 4.0(API level 14)或者更高版本号的设备能够直接通过wifi而不须要其他中间中转节点就能直接 ...
- 成员函数的const究竟修饰的是谁
demo <pre name="code" class="cpp">class Test { public: const void OpVar(in ...
- Windows Server 2012 R2 或 2016 无法安装 .Net 3.5.1
Windows Server 2012 R2 或 2016 无法安装 .Net 3.5.1 问题描述 使用 Windows Server 2012 R2 或 Windows Server 2016系统 ...
- WebService 之 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。
在使用 WCF 中,遇到如下问题: 已超过传入消息(65536)的最大消息大小配额.若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性. 问题说明: 客户端调用 ...
- HDU 4902 Nice boat 成段线段树
操作1 的时候标记deng[rt]表示以下一段数都是与当前节点的值同样 下次操作2时直接对有deng标记的节点gcd更新 (可能还能够更简单) #include <stdio.h> #in ...
- MySQL工具1:mysqladmin
每两秒显示一下MySQL的状态,一共显示5次. # mysqladmin -uroot -p -i 2 -c 5 status 查看MySQL的运行状态: #mysqladmin -uroot -p ...
- 怎样让CodeBlocks支持C99
转载请注明出处,否则将追究法律责任http://blog.csdn.net/xingjiarong/article/details/47080303 CodeBlocks是一个写C/C++的比較好的编 ...