前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >100个Numpy练习【2】

100个Numpy练习【2】

作者头像
YingJoy_
发布2018-03-21 10:16:37
1.3K0
发布2018-03-21 10:16:37
举报
文章被收录于专栏:应兆康的专栏应兆康的专栏

接上文: 100个Numpy练习【1】


Numpy是Python做数据分析必须掌握的基础库之一,非常适合刚学习完Numpy基础的同学,完成以下习题可以帮助你更好的掌握这个基础库。

Python版本:Python 3.6.2

Numpy版本:Numpy 1.13.1

《100个Numpy练习【2】》
《100个Numpy练习【2】》
21. 用tile函数创建一个8×8的棋盘矩阵(★☆☆)

(提示: np.tile)

代码语言:javascript
复制
Z = np.tile(np.array([[1, 0], [0, 1]]), (4, 4))
print (Z)
22. 对5×5的随机矩阵进行归一化 (★☆☆)

(提示: (x – min) / (max – min))

代码语言:javascript
复制
Z = np.random.random((5, 5))
Zmax, Zmin = Z.max(), Z.min()
Z = (Z-Zmin)/(Zmax-Zmin)
print (Z)
23. 创建一个dtype来表示颜色(RGBA) (★☆☆)

(提示: np.dtype)

代码语言:javascript
复制
color = np.dtype([("r", np.ubyte, 1),
                  ("g", np.ubyte, 1),
                  ("b", np.ubyte, 1),
                  ("a", np.ubyte, 1)])
c = np.array((255, 255, 255, 1), dtype=color)
print (c)

Out[80]:
array((255, 255, 255, 1),
      dtype=[('r', 'u1'), ('g', 'u1'), ('b', 'u1'), ('a', 'u1')])
24. 一个5×3的矩阵和一个3×2的矩阵相乘,结果是什么?(★☆☆)

(提示: np.dot | @)

代码语言:javascript
复制
Z = np.dot(np.zeros((5, 3)), np.zeros((3, 2)))
# 或者
Z = np.zeros((5, 3))@ np.zeros((3, 2))
print (Z)
25. 给定一个一维数组把它索引从3到8的元素进行取反 (★☆☆)

(提示: >, <=)

代码语言:javascript
复制
Z = np.arange(11)
Z[(3 <= Z) & (Z < 8)] *= -1
print (Z)
26. 下面的脚本的结果是什么? (★☆☆)

(提示: np.sum)

代码语言:javascript
复制
# Author: Jake VanderPlas               # 结果

print(sum(range(5),-1))                 9
from numpy import *                     
print(sum(range(5),-1))                 10    #numpy.sum(a, axis=None)
27. 关于整形的向量Z下面哪些表达式正确? (★☆☆)
代码语言:javascript
复制
Z**Z                        True
2 << Z >> 2                 False
Z <- Z                      True
1j*Z                        True  #复数           
Z/1/1                       True
Z<Z>Z                       False
28. 下面表达式的结果分别是什么? (★☆☆)
代码语言:javascript
复制
np.array(0) / np.array(0)                           nan
np.array(0) // np.array(0)                          0
np.array([np.nan]).astype(int).astype(float)        -2.14748365e+09
29. 如何从零位开始舍入浮点数组? (★☆☆)

(提示: np.uniform, np.copysign, np.ceil, np.abs)

代码语言:javascript
复制
# Author: Charles R Harris

Z = np.random.uniform(-10,+10,10)
print (np.copysign(np.ceil(np.abs(Z)), Z))
30. 如何找出两个数组公共的元素? (★☆☆)

(提示: np.intersect1d)

代码语言:javascript
复制
Z1 = np.random.randint(0, 10, 10)
Z2 = np.random.randint(0, 10, 10)
print (np.intersect1d(Z1, Z2))
31. 如何忽略numpy的警告信息(不推荐)? (★☆☆)

(提示: np.seterr, np.errstate)

代码语言:javascript
复制
# Suicide mode on
defaults = np.seterr(all="ignore")
Z = np.ones(1) / 0

# Back to sanity
_ = np.seterr(**defaults)

# 另一个等价的方式, 使用上下文管理器(context manager)
with np.errstate(divide='ignore'):
    Z = np.ones(1) / 0
32. 下面的表达式是否为真? (★☆☆)

(提示: 虚数)

代码语言:javascript
复制
np.sqrt(-1) == np.emath.sqrt(-1)     Faslse
33. 如何获得昨天,今天和明天的日期? (★☆☆)

(提示: np.datetime64, np.timedelta64)

代码语言:javascript
复制
yesterday = np.datetime64('today', 'D') - np.timedelta64(1, 'D')
today = np.datetime64('today', 'D')
tomorrow = np.datetime64('today', 'D') + np.timedelta64(1, 'D')
34. 怎么获得所有与2016年7月的所有日期? (★★☆)

(提示: np.arange(dtype=datetime64[’D’]))

代码语言:javascript
复制
Z = np.arange('2016-07', '2016-08', dtype='datetime64[D]')
print (Z)
35. 如何计算 ((A+B)*(-A/2)) (不使用中间变量)? (★★☆)

(提示: np.add(out=), np.negative(out=), np.multiply(out=), np.divide(out=))

代码语言:javascript
复制
A = np.ones(3) * 1
B = np.ones(3) * 1
C = np.ones(3) * 1
np.add(A, B, out=B)
np.divide(A, 2, out=A)
np.negative(A, out=A)
np.multiply(A, B, out=A)
36. 用5种不同的方法提取随机数组中的整数部分 (★★☆)

(提示: %, np.floor, np.ceil, astype, np.trunc)

代码语言:javascript
复制
Z = np.random.uniform(0, 10, 10)
print (Z - Z % 1)
print (np.floor(Z))
print (np.cell(Z)-1)
print (Z.astype(int))
print (np.trunc(Z))
37. 创建一个5×5的矩阵且每一行的值范围为从0到4 (★★☆)

(提示: np.arange)

代码语言:javascript
复制
Z = np.zeros((5, 5))
Z += np.arange(5)
print (Z)
38. 如何用一个生成10个整数的函数来构建数组 (★☆☆)

(提示: np.fromiter)

代码语言:javascript
复制
def generate():
    for x in range(10):
      yield x
Z = np.fromiter(generate(), dtype=float, count=-1)
print (Z)
39. 创建一个大小为10的向量, 值域为0到1,不包括0和1 (★★☆)

(提示: np.linspace)

代码语言:javascript
复制
Z = np.linspace(0, 1, 12, endpoint=True)[1: -1]
print (Z)
40. 创建一个大小为10的随机向量,并把它排序 (★★☆)

(提示: sort)

代码语言:javascript
复制
Z = np.random.random(10)
Z.sort()
print (Z)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 21. 用tile函数创建一个8×8的棋盘矩阵(★☆☆)
  • 22. 对5×5的随机矩阵进行归一化 (★☆☆)
  • 23. 创建一个dtype来表示颜色(RGBA) (★☆☆)
  • 24. 一个5×3的矩阵和一个3×2的矩阵相乘,结果是什么?(★☆☆)
  • 25. 给定一个一维数组把它索引从3到8的元素进行取反 (★☆☆)
  • 26. 下面的脚本的结果是什么? (★☆☆)
  • 27. 关于整形的向量Z下面哪些表达式正确? (★☆☆)
  • 28. 下面表达式的结果分别是什么? (★☆☆)
  • 29. 如何从零位开始舍入浮点数组? (★☆☆)
  • 30. 如何找出两个数组公共的元素? (★☆☆)
  • 31. 如何忽略numpy的警告信息(不推荐)? (★☆☆)
  • 32. 下面的表达式是否为真? (★☆☆)
  • 33. 如何获得昨天,今天和明天的日期? (★☆☆)
  • 34. 怎么获得所有与2016年7月的所有日期? (★★☆)
  • 35. 如何计算 ((A+B)*(-A/2)) (不使用中间变量)? (★★☆)
  • 36. 用5种不同的方法提取随机数组中的整数部分 (★★☆)
  • 37. 创建一个5×5的矩阵且每一行的值范围为从0到4 (★★☆)
  • 38. 如何用一个生成10个整数的函数来构建数组 (★☆☆)
  • 39. 创建一个大小为10的向量, 值域为0到1,不包括0和1 (★★☆)
  • 40. 创建一个大小为10的随机向量,并把它排序 (★★☆)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档