python库numpy基本用法

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

1. 数组创建

import numpy as np

# numpy.arange(start, stop, step, dtype)
x = np.arange(10,20,2)

a = np.array([1, 2, 3, 4, 5, 6], ndmin=2)
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
print(a.dtype)
a = np.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
print(a.dtype)

b = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.float32)
print(b.dtype)
#np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

a = np.ones((2, 3, 4))
a = np.zeros((2, 3, 4))
a = np.linspace(1, 10, 10)
a = np.linspace(1, 10, 10).reshape([2, 5])
a = np.arange(9)
a = np.linspace(1, 10, 10).reshape(2, 5)
a = np.arange(0, 10, 2)

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

x = [(1, 2, 3), (4, 5, 6)]
a = np.asarray(x)
a = np.logspace(2, 5)
# np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

print(a)

2.查看数组属性

a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.shape)
print(a.ndim)
print(a.itemsize)

3. 数组切片和筛选

a = np.arange(10)
s = slice(2, 7, 2)   # 从索引 2 开始到索引 7 停止,间隔为2
print(a[s])
print(a[2:7:2])

a = np.array([[1, 2, 3], [3, 4, 5], [4, 5, 6]])
print(a[..., 1])   # 第2列元素
print(a[1, :])   # 第2行元素
print(a[:, 1:])  # 第2列及剩下的所有元素

a = np.arange(60).reshape(3, 4, 5)

print(a[..., 3]) #  多个冒号用省略号代替
print(a)
print(a[:, 1, 1])
print(a[:, 1, -1])  # 最后一个维度取最后一个

# numpy.sort(a, axis, kind, order)
a = np.array([[3, 7], [9, 1]])
print(np.sort(a))
#  numpy.where()
print("numpy.where()")
a = np.array([2, 4, 6, 8, 10])
print(a[np.where(a > 5)]) # 等价于 a[ a> 5]
print(a[a > 5])

# 例子的条件为[[True,False], [True,False]], 分别对应最后输出结果的四个值。
# 第一个值从[1,9]中选,因为条件为True,所以是选1。
# 第二个值从[2,8]中选,因为条件为False,所以选8,后面以此类推。
print(np.where([[True, False], [True, True]], [[1, 2], [3, 4]], [[9, 8], [7, 6]]))

# numpy.extract() 函数根据某个条件从数组中抽取元素,返回满条件的元素。
a = np.arange(10)
condition = np.mod(a, 2) == 0
np.extract(condition, a)  # 数组中提取出能整除2的数


4. 数组统计

a = np.arange(27).reshape(3, 3, 3)
print(a)
print(np.max(a, axis=2))  #最大值
print(np.argmax(a, axis=2))  #最大值索引
print(np.min(a, axis=2))
print(np.argmin(a, axis=2))

np.mean(a)
np.mean(a, axis=0)

np.average(a)
np.std(a)
np.var(a)


5. 数组运算

a = np.arange(9).reshape(3, 3)
b = a * 2
print(b)
print(a+b)
print(np.hsplit(a, 3))  # 沿着水平方向分割为3个相同大小的子数组
x = np.split(a, 3, axis=1)
print(x)  # x为含有三个子数组的列表

print(a.flatten())  # 展开数组

np.vsplit(a, 3)
np.split(a, 3, axis=0)

a = np.arange(60).reshape(3, 4, 5)
print(np.dsplit(a, 5))  # 按深度方向分割数组

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值