Python numpy 矩阵运算练习

Python numpy 矩阵运算练习

首先我们使用最简单的程序查看 numpy 版本和配置:

import numpy as np
print(np.__version__)
np.show_config()

这里我们默认安装的是清华大学镜像源里面的包,版本号是 1.21.5:

  1. Create a 8x8 matrix and fill it with a checkerboard pattern (★☆☆)
    创建一个8*8矩阵,并用棋盘图案填充
import numpy as np
z = np.zeros((8,8),dtype=int)
z[1::2,::2] = 1   # 从第 2 行开始,每隔一行,第 0 列开始,每隔一列赋值为 1
z[::2,1::2] = 1   # 从第 0 行开始,每隔一行,第 1 列开始,每隔一列赋值为 1
print(z)
  1. Create a 5x5 matrix with values 1,2,3,4 just below the diagonal (★☆☆)
    创建一个5*5矩阵,对角线下方值为 0,1,2,3,4
z = np.diag(np.arange(5),k=0)
print(z)
  1. Create a custom dtype that describes a color as four unsigned bytes (RGBA) (★☆☆)
    新建一个dtype类型用来描述一个颜色(RGBA)
import numpy as np
color = np.dtype([("r",np.ubyte,1),
                  ("g",np.ubyte,1),
                  ("b",np.ubyte,1),
                  ("a",np.ubyte,1)])
  1. How to round away from zero a float array ? (★☆☆)
    如何对数组进行四舍五入操作?
z = np.random.uniform(-10,+10,10)
print(z)
print (np.copysign(np.rint(np.abs(z)), z))
  1. How to ignore all numpy warnings (not recommended)? (★☆☆)
    如何忽略所有numpy警告?
# 方法1
# Suicide mode on
import numpy as np
defaults = np.seterr(all="ignore")
z = np.ones(1) / 0
# Back to sanity
_ = np.seterr(**defaults)
# 方法2
with np.errstate(divide='ignore'):
    Z = np.ones(1) / 0
  1. Given a 1D array, negate all elements which are between 3 and 8, in place. (★☆☆)
    给定一个一维数组,将第3~8个元素取反

···python
import numpy as np
z = np.arange(11)
print(z)
z[(3 < z) & (z <= 8)] *= -1
print(z)
···

  1. Extract the integer part of a random array using 5 different methods (★★☆)
    提取随机数列整数部分的五种方法
z = np.random.uniform(0,10,10)
print (z - z%1)
print (np.floor(z))
print (np.ceil(z)-1)
print (z.astype(int))
print (np.trunc(z))
  1. Create a 5x5 matrix with row values ranging from 0 to 4 (★★☆)
    创建一个5*5的矩阵,每一行值为0~4
z = np.zeros((5,5))
z += np.arange(5)
print(z)
  1. Create random vector of size 10 and replace the maximum value by 0 (★★☆)
    创建一个长度为10的随机矩阵,并将最大值替换为0
z = np.random.random(10)
z[z.argmax()] = 0
print(z)
  1. Print the minimum and maximum representable value for each numpy scalar type (★★☆)
    打印每种numpy标量类型的最小和最大可表示值
for dtype in [np.int8, np.int32, np.int64]:
   print(np.iinfo(dtype).min)
   print(np.iinfo(dtype).max)
for dtype in [np.float32, np.float64]:
   print(np.finfo(dtype).min)
   print(np.finfo(dtype).max)
   print(np.finfo(dtype).eps)

参考资料

这里的全部练习题都取自 CSDN 上一位叫 普通网友 的博主

  1. numpy 100题练习 (一)

  2. numpy 100题练习 <二>

posted @ 2023-03-06 22:14  ppqppl  阅读(79)  评论(0编辑  收藏  举报