Skip to content

Latest commit

 

History

History
172 lines (154 loc) · 4.47 KB

numpy.md

File metadata and controls

172 lines (154 loc) · 4.47 KB

numpy用c语言写的,快 用矩阵运算会非常快

• numpy属性 

ndim:矩阵的维度n shape:矩阵的形状(row,colum) size: row*colum

Import numpy as np
#一般会把numpy简化成np引入模块

a = np.array([ [],[] ]) Print(a) • numpy的Array创建 keyword: array:创建数组 dtype:指定数据类型 zeros:创建数据为0 ones:创建数据接近1 empty:创建数据接近0 arrage:按照指定范围创建数据 linespace:创建线段 Reshape(row,colum):重新创建矩阵

- 创建数组array
 a= np.array([2,23,4])   #list 1d  1维
 print(a)
#[2,23,4]
- 指定数据dtype
a= np.array([2,23,4],dtype=np.int)  
 print(a.dtype)
#int 64
#int 没有特殊说明默认为64位

a= np.array([2,23,4],dtype=np.int32)  
 print(a.dtype)
#int 32

a= np.array([2,23,4],dtype=np.float)  
 print(a.dtype)
#float 64
#float 没有特殊说明也默认为64位

|数据类型 | 类型简写| 说明| | int_ | 默认整型64位| | intc | 等价于long的整型| | int8 | i1 | (int最小字节) | 字节整型,1个字节,范围:[-128,127]| |int16| i2| 整型,2个字节,范围:[-32768,32767] int32 i4 整型,4个字节,范围:[-2^31,2^31-1] int64 i8 整型,8个字节,范围:[-2^63,2^63-1] unit8 u1 无符号整型,1个字节,范围:[0, 255] unit16 u2 无符号整型,2个字节,范围:[0, 65535] unit32 u4 无符号整型,4个字节,范围:[0, 2^32-1] unit64 u8 无符号整型,8个字节,范围:[0, 2^64-1] bool_ 以一个字节形式存储的布尔值(True 或者 False) float_ float64简写形式 float16 F2 半精度浮点型(2字节):1符号位+5位指数+10位的小数部分 float32 F4或者f 单精度浮点型(4字节):1符号位+8位指数+23位的小数部分 float64 F8或者d 双精度浮点型(8字节):1符号位+11位指数+52位小数部分 complex_ c16 complex128的简写形式 complex64 c8 复数,由两个32位的浮点数来表示 complex128 c16 复数,由两个64位的浮点数来表示 object O Python对象类型 String_ S 固定长度的字符串类型(每个字符1个字节),比如:要创建一个长度为8的字符串,应该使用S8 Unicode_ U 固定长度的unicode类型的字符串(每个字符串占用字节数由平台决定),长度定义类似String_类型

- 创建特定的矩阵
- #注意括号的使用!!!
#创建一般矩阵
 a= np.array([[2,23,4],[2,32,4]])   #2d,2*3
 print(a)

#[[2,23,4]
   [2,32,4]]
#创建全零矩阵
 a=np.zeros((3,4))   #数据全为0,3*4   !注意zeros()本身就有括号的,里面的行列再用一个括号括起来
 print(a)
 #
[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]
#创建全一矩阵,同时也能指定特定数据的dtype
a=np.ones((3,4),dtype=np.int64)
print(a)
print(a.dtype)

#
[[1 1 1 1]
 [1 1 1 1]
 [1 1 1 1]]
int64
#创建全空矩阵——空矩阵的意思是连续的,非常接近于0但不是0的数
 a=np.empty((3,4))
 print(a)
#
[[6.95172316e-310 6.95172317e-310 6.95172317e-310 6.95172317e-310]
 [6.95172317e-310 6.95172317e-310 6.95172317e-310 6.95172317e-310]
 [6.95172317e-310 6.95172318e-310 6.95172316e-310 6.95172316e-310]]

或者还可以指定数数据字节数

a=np.empty((3,4),dtype=np.float16)
print(a)
#
[[8.057e-03 8.057e-03 8.057e-03 8.057e-03]
 [8.057e-03 4.900e+01 1.105e+04 2.794e+03]
 [1.394e+03 8.575e-03 1.511e+04 7.296e+03]]
#使用arange创建连续数组
a = np.arange(10,20,2)    #10-19,步长为2的数组
b = np.arange(12)
print(a,b)

#[10 12 14 16 18] [ 0  1  2  3  4  5  6  7  8  9 10 11]
#reshape改变矩阵形状

a= np.arrage(12).reshape((3,4)) print(a)

[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]]

#使用linspace创建线段型矩阵

a= np.linspace(1,10,5) #开始端1,结束端10,被分割成5个数据,生成线段 !注意这里的区间~ 如果是arange(),左闭右开,但是linspace()是左闭右闭 print(a)

[ 1. 3.25 5.5 7.75 10. ] #(10-1)/(5-1)

#linspace+reshape效果

a= np.linspace(1,10,6).reshape(2,3) print(a)

[[ 1. 2.8 4.6] [ 6.4 8.2 10. ]] #(10-1)/(6-1)


	§ Numpy基础运算
	```
	Import numpy as np
	 a= np array([10,20,30,40])
	 b= np.arange(4)
	```
	- 两个矩阵减法
	- 两个矩阵乘法
	- 两个矩阵加法
	- 矩阵乘方
	- 矩阵 数学工具
矩阵 print中的逻辑判断![image](https://user-images.githubusercontent.com/93080608/166262684-a67599f2-8a95-42a7-b026-d52a968f5bf9.png)