python的numpy模块_python中numpy模块教程

numpy元素的属性

numpy的所有值都有以下几个属性

A = np.arange(12).reshape(3, 4).astype(np.float32)

print(A.ndim)

print(A.shape)

print(A.size)

print(A.dtype)

print(A.itemsize)

# 输出结果为

# 2

# (3, 4)

# 12

# float32

# 4

A.ndim

数组轴的个数,在python的世界中,轴的个数被称作秩

A.shape

数组的维度。

A.size

数组元素的总个数。

A.dtype

元素的数据类型。

A.itemsize

数组中每个元素的字节大小。

生成数列

指定值的增量

data = np.arange(10, 30, 5)

print(data) # [10 15 20 25]

指定值的个数

data = np.linspace(1, 10, 5)

print(data) # [ 1. 3.25 5.5 7.75 10. ]

生成矩阵

data = np.array([[2, 3, 4], [4, 5, 6]], dtype=np.float32)

print(data)

# [[ 2. 3. 4.]

# [ 4. 5. 6.]]

生成全是0的矩阵

data = np.zeros((3, 4))

print(data)

# [[ 0. 0. 0. 0.]

# [ 0. 0. 0. 0.]

# [ 0. 0. 0. 0.]]

生成全是1的矩阵

data = np.ones((3, 4))

print(data)

# [[ 1. 1. 1. 1.]

# [ 1. 1. 1. 1.]

# [ 1. 1. 1. 1.]]

生成随机数据

随机生成0~1之间的数

data = np.random.random()

print(data) #0.01447623686510957

随机生成指定范围内的浮点数

data = np.random.uniform(10,20)

print(data)

# 14.646829941471552

随机整数

data = np.random.randint(10,20)

print(data)

# 17

随机生成一个矩阵

data = np.random.random((3,4))

print(data)

# [[ 0.77829489 0.63959774 0.83723733 0.95292845]

# [ 0.78949057 0.38655045 0.79205805 0.06847395]

# [ 0.5284635 0.95181041 0.39267602 0.23638718]]

多维矩阵

data = np.random.random((2,3,4))

print(data)

# [[[ 0.36605927 0.47719931 0.16654015 0.17585629]

# [ 0.66085507 0.09883734 0.22603851 0.91388161]

# [ 0.33416014 0.82187631 0.91063299 0.25781208]]

#

# [[ 0.56585862 0.09606677 0.84916434 0.26007262]

# [ 0.16145394 0.61120144 0.75447741 0.40179179]

# [ 0.55887648 0.45416114 0.17644248 0.43142769]]]

合并

A = np.array([1, 1, 1])

B = np.array([2, 2, 2])

#纵向合并

print(np.vstack((A, B)))

#横向合并

print(np.hstack((A, B)))

# [[1 1 1]

# [2 2 2]]

#

# [1 1 1 2 2 2]

增加维度

添加一个横向的维度

A = np.array([1, 1, 1])

B = A[np.newaxis, :]

print(A.shape)

print(B.shape)

print(B)

# (3,)

# (1, 3)

# [[1 1 1]]

添加一个纵向的维度

A = np.array([1, 1, 1])

B = A[:,np.newaxis]

print(A.shape)

print(B.shape)

print(B)

# (3,)

# (3, 1)

# [[1]

# [1]

# [1]]

分割

A = np.arange(12).reshape(3, 4)

print(A)

#横向分割

print(np.vsplit(A, 3))

#纵向分割

print(np.hsplit(A, 2))

#可以在参数中指定分割哪个坐标

print(np.split(A, 3, axis=0))

print(np.split(A, 2, axis=1))

#不等量分割

print(np.array_split(A, 3, axis=1))

深层拷贝

在numpy中直接用"="号赋值,相当于赋予的是指针,赋值前后的"两个"变量是同"一个"变量.比如,下面的变量a,b,改变a,b也会跟着变化.

a = np.array([1, 2, 3])

b = a

a[0] = 666

print(a)

print(b)

#[666 2 3]

#[666 2 3]

如果想要两个变量不关联,需要这样拷贝

b = a.copy()

运算

numpy中矩阵的加法减法的运算和普通的加减运算相同,但是矩阵乘法的运算需要用dot函数,如下

A = np.array([[2, 3],

[4, 7]])

B = np.array([[1, 2],

[3, 4]])

print(A + B)

print(A - B)

print(np.dot(A, B))

# [[ 3 5]

# [ 7 11]]

#

# [[1 1]

# [1 3]]

#

# [[11 16]

# [25 36]]

索引与切片

numpy中的索引与切片功能比python中的切片更加强大

索引多维数组

data = np.random.random((3,4,5))

print(data[0,2,3])

TIM截图20171127115021.png

索引多维数组的时候也可以用切片

data = np.random.random((3,4,5))

print(data[1,:,3])

print(data[:2,:,3])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值