随机生成元素升序向量_数据科学中100个Numpy代码技巧

NumPy是Python语言的扩展库,支持许多高维数组和矩阵的操作。此外,它还为数组操作提供了许多数学函数库。机器学习涉及到对数组的大量转换和操作,这使得NumPy成为必不可少的工具之一。

下面的100个练习都是从numpy邮件列表、stack overflow和numpy文档中收集的。

1.以np的名称导入numpy包(★☆☆)

import numpy as np

2.打印numpy版本和配置(★☆☆)print(np.__version__)np.show_config()

3.创建一个大小为10的空向量(★☆☆)

Z = np.zeros(10)print(Z)

4.如何找到任何数组的内存大小(★☆☆)Z = np.zeros((10,10))print('%d bytes' % (Z.size * Z.itemsize))

5.如何从命令行获取numpy add函数的文档?(★☆☆)

%run `python -c 'import numpy; numpy.info(numpy.add)'`

6.创建一个大小为10的空矢量,第五个值为1(★☆☆)Z = np.zeros(10)Z[4] = 1print(Z)

7.创建一个向量,其值的范围是10到49(★☆☆)

Z = np.arange(10,50)print(Z)

8.反转向量(第一个元素变为最后一个)(★☆☆)Z = np.arange(50)Z = Z[::-1]print(Z)

9.创建一个从0到8的3 * 3矩阵(★☆☆)

x = np.arange(0,9).reshape(3,3)print(x)

10.查找来自[1,2,0,0,4,0]的非零元素的索引(★☆☆)nz = np.nonzero([1,2,0,0,4,0])print(nz)

11.创建一个3 * 3的单位矩阵(★☆☆)

Z = np.eye(3)print(Z)

12.创建一个具有随机值的3x3x3数组(★☆☆)Z = np.random.random((3,3,3))print(Z)

13.创建一个具有随机值的10x10数组,并找到最小值和最大值(★☆☆)

Z = np.random.random((10,10))Zmin, Zmax = Z.min(), Z.max()print(Zmin, Zmax)

14.创建一个大小为30的随机向量,并找到平均值(★☆☆)Z = np.random.random(30)m = Z.mean()print(m)

15.创建一个边界为1,内部为0的二维数组(★☆☆)

Z = np.ones((10,10))Z[1:-1,1:-1] = 0print(Z)

16.如何在现有数组周围添加边框(用0填充)?(★☆☆)Z = np.ones((5,5))Z = np.pad(Z, pad_width=1, mode='constant', constant_values=0)print(Z)

17.以下表达式的结果是什么?(★☆☆)

0 * np.nannp.nan == np.nannp.inf > np.nannp.nan - np.nannp.nan in set([np.nan])0.3 == 3 * 0.1print(0 * np.nan)print(np.nan == np.nan)print(np.inf > np.nan)print(np.nan - np.nan)print(np.nan in set([np.nan]))print(0.3 == 3 * 0.1)

18.创建一个5x5矩阵,对角线正下方的值为(1、2、3、4)(★☆☆)Z = np.diag(1+np.arange(4),k=-1)print(Z)

19.创建一个8x8矩阵,并用棋盘图案填充它(★☆☆)

Z = np.zeros((8,8),dtype=int)Z[1::2,::2] = 1Z[::2,1::2] = 1print(Z)

20.考虑一个形状为(6,7,8)的数组,第100个元素的索引(x,y,z)是什么?(★☆☆)print(np.unravel_index(99,(6,7,8)))

21.使用tile函数创建一个棋盘格8x8矩阵(★☆☆)

Z = np.tile( np.array([[0,1],[1,0]]), (4,4))print(Z)

22.归一化一个5x5随机矩阵(★☆☆)Z = np.random.random((5,5))Z = (Z - np.mean (Z)) / (np.std (Z))print(Z)

23.创建一个自定义dtype,将颜色描述为四个unsigned bytes(RGBA)(★☆☆)

color = np.dtype([('r', np.ubyte, 1), ('g', np.ubyte, 1), ('b', np.ubyte, 1), ('a', np.ubyte, 1)])

24.将5x3矩阵乘以3x2矩阵(实矩阵乘积)(★☆☆)Z = np.dot(np.ones((5,3)), np.ones((3,2)))print(Z)# Alternative solution, in Python 3.5 and aboveZ = np.ones((5,3)) @ np.ones((3,2))print(Z)

25.给定一维数组,将3到8之间的所有元素乘以-1。(★☆☆)

Z = np.arange(11)Z[(3 < Z) & (Z < 8)] *= -1print(Z)

26.以下脚本的输出是什么?(★☆☆)print(sum(range(5),-1))from numpy import *print(sum(range(5),-1))

27.考虑一个整数向量Z,以下哪个表达式是合法的?(★☆☆)

Z**Z2 << Z >> 2Z ZZ**Z2 << Z >> 2Z Z

28.以下表达式的结果是什么?np.array(0) / np.array(0)np.array(0) // np.array(0)np.array([np.nan]).astype(int).astype(float)print(np.array(0) / np.array(0))print(np.array(0) // np.array(0))print(np.array([np.nan]).astype(int).astype(float))

29.如何round away from zero一个浮点数组(★☆☆)

Z = np.random.uniform(-10,+10,10)print (np.copysign(np.ceil(np.abs(Z)), Z))

30.如何找到两个数组之间的公共值?(★☆☆)Z1 = np.random.randint(0,10,10)Z2 = np.random.randint(0,10,10)print(np.intersect1d(Z1,Z2))

31.如何忽略所有numpy警告(不建议)?(★☆☆)

# Suicide mode ondefaults = np.seterr(all='ignore')Z = np.ones(1) / 0# Back to sanity_ = np.seterr(**defaults)# Equivalently with a context managernz = np.nonzero([1,2,0,0,4,0])print(nz)

32.以下表达式是否正确?(★☆☆)np.sqrt(-1) == np.emath.sqrt(-1)

33.如何获取昨天ÿ

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值