和大(小)师(白)一起学Python(七) NumPy基础

和大(小)师(白)一起学Python(七) NumPy基础

本文参考《深度学习教科书》石川聪彦 著,陈欢 译
7.2.2 一维数组生成

import numpy as np

storages = [24, 3, 4, 23, 10, 12]
print(storages)

# 请生成 ndarray 数组,并将其代入变量 np_storages 中
np_storages = np.array(storages)

# 请对变量 np_storages 的类型进行输出
print(type(np_storages))

7.2.4 索引引用与切片

arr = np.arange(10)
arr[0:3] = 1
print(arr)

7.2.6 数组的复制

import numpy as np

# 观察在 Python 的列表中使用切片时程序的行为
arr_List = [x for x in range(10)]
print("列表类型的数据")
print("arr_List:",arr_List)

print()
arr_List_copy = arr_List[:]
arr_List_copy[0] = 100

print("因为列表的切片是对数据进行复制而成的,所以在 arr_List 中不会反映出 arr_List_copy 中的变化")
print("arr_List:",arr_List)
print()

# 观察在 NumPy 的 ndarray 中使用切片时程序的行为
arr_NumPy = np.arange(10)
print("NumPy的ndarray数据")
print("arr_NumPy:",arr_NumPy)
print()

arr_NumPy_view = arr_NumPy[:]
arr_NumPy_view[0] = 100

print("NumPy 的切片会将 view ( 保存数据的地址信息 ) 代入,对 arr_NumPy_view 的变更将在 arr_NumPy 中被反映出来")
print("arr_NumPy:",arr_NumPy)
print()

# 观察在 NumPy 的 ndarray 中使用copy() 时程序的行为
arr_NumPy = np.arange(10)
print('在 NumPy 的 ndarray 中使用 copy() 的变化')
print("arr_NumPy:",arr_NumPy)
print()
arr_NumPy_copy = arr_NumPy[:].copy()
arr_NumPy_copy[0] = 100

print("使用 copy() 会生成备份,arr_NumPy_copy 不会对 arr_NumPy 造成影响")
print("arr_NumPy:",arr_NumPy)

7.2.7 布尔索引的引用

arr = np.array([2, 4, 6, 7]) 
print(arr[np.array([True, True, True, False])]) 

7.2.8 通用函数
绝对值、自然对数、平方根

import numpy as np

arr = np.array([4, -9, 16, -4, 20])
print(arr)

# 请将变量 arr 中的各个元素转换成绝对值并代入变量 arr_abs 中
arr_abs = np.abs(arr)
print(arr_abs)

# 请对变量 arr_abs 的各个元素的 e 的幂和平方根进行输出
print(np.exp(arr_abs))
print(np.sqrt(arr_abs))

7.2.9 集合函数

import numpy as np

arr1 = [2, 5, 7, 9, 5, 2]
arr2 = [2, 5, 8, 3, 1]

# 请使用 np.unique() 函数,将变量 arr1 中重复的元素去除之后的数组代入变量 new_arr1 中
new_arr1 = np.unique(arr1)
print(new_arr1)

# 请对变量 new_arr1 和变量 arr2 的并集进行输出
print(np.union1d(new_arr1, arr2))

# 请对变量 new_arr1 和变量 arr2 的交集进行输出
print(np.intersect1d(new_arr1, arr2))

# 请对从变量 new_arr1 中减去变量 arr2 的差集进行输出
print(np.setdiff1d(new_arr1, arr2))

7.2.10 随机数

import numpy as np

# 请在不需要添加 np.random 的方式下导入 randint() 函数
from numpy.random import randint

# 请将各元素大于 0 小于 10 的整数的矩阵 (5 × 2) 代入变量 arr1 中
arr1 = randint(0, 11, (5, 2))
print(arr1)

# 请将 3 个 0~1 均匀分布的随机数代入变量 arr2 中
arr2 = np.random.rand(3)
print(arr2)

7.3.1 二维数据维度与整形函数

import numpy as np

# 请将二维数组代入变量 arr 中
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print(arr)

# 请对变量 arr 的矩阵中的各个维度的元素数量进行输出
print(arr.shape)

# 请将变量 arr 转换成 4 行 2 列的矩阵
print(arr.reshape(4, 2))

7.3.2 二位数组索引

arr = np.array([[1, 2 ,3], [4, 5, 6]])
print(arr[1])

arr = np.array([[1, 2 ,3], [4, 5, 6]])
print(arr[1,2])

arr = np.array([[1, 2 ,3], [4, 5, 6]])
print(arr[1,1:])

7.3.3 求和函数

arr = np.array([[1, 2 ,3], [4, 5, 6]])

print(arr.sum())
print(arr.sum(axis=0))
print(arr.sum(axis=1))

7.3.4 任意行索引

arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8]]) 

# 按照第 3 行、第 2 行、第 0 行的顺序将行数据取出,并生成新的元素
# 索引编号从 0 开始
print(arr[[3, 2, 0]]) 

7.3.5 转置矩阵

import numpy as np

arr = np.arange(10).reshape(2, 5)

# 请将变量 arr 进行转置
print(arr.T) # print(np.transpose(arr))

7.3.6 排序

import numpy as np

arr = np.array([[8, 4, 2], [3, 5, 1]])

# 请使用 argsort() 方法对变量arr进行排序并对结果进行输出
print(arr.argsort())

# 请使用 np.sort() 函数对变量arr进行排序并对结果进行输出
print(np.sort(arr))

# 请使用 sort() 方法将变量arr按行进行排序
arr.sort(1)
print(arr)

7.3.8 统计函数

import numpy as np

arr = np.arange(15).reshape(3, 5)

# 请对变量 arr 中每一列的平均值进行输出
print(arr.mean(axis=0))

# 请对变量 arr 中行的合计值进行输出
print(arr.sum(axis=1))

# 请对变量 arr 的最小值进行输出
print(arr.min())

# 请对变量 arr 每一列中最大值的索引编号进行输出
print(arr.argmax(axis=0))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值