0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数据分析必备的NumPy技巧(Python)

zhKF_jqr_AI 来源:未知 作者:邓佳佳 2018-03-05 15:41 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

NumPy系统是Python的一种开源的数值计算扩展,它也是是Python数据分析必不可少的第三方库。近日,国外博主Selva Prabhakaran制作了101道真题,为熟悉/不熟悉NumPy的“后备数据科学家”们提供了一个检测自己水平的机会,你不想来挑战一下吗?本文中的NumPy真题旨在提供一个参考,读者可以借此测试自己数据分析技巧的掌握水平。

1.导入NumPy并查看版本

难度:L1

01

导入NumPy并将它并名为np,输出版本信息。

点击空白处查看答案

import numpy as np

print(np.__version__)

#> 1.13.3

无论你要做什么,你必须在其他代码前先输入import numpy as np,这之后它才能正常工作。如果还没有安装,你可以去anaconda下载。

2.如何创建一维数组?

难度:L1

02

创建一个包含数字0-9的一维数组:#> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])。

点击空白处查看答案

arr = np.arange(10)

arr

#> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

3.如何创建布尔型数组?

难度:L1

03

创建一个3×3的,所有填充为True的数组。

点击空白处查看答案

np.full((3, 3), True, dtype=bool)

#> array([[ True, True, True],

#> [ True, True, True],

#> [ True, True, True]], dtype=bool)

# Alternate method:

np.ones((3,3), dtype=bool)

4.如何从一维数组中索引符合条件的元素?

难度:L1

04

从输入arr中筛选出所有奇数。

输入:

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

期望的输出:

#> array([1, 3, 5, 7, 9])

# Input

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

# Solution

arr[arr % 2 == 1]

#> array([1, 3, 5, 7, 9])

5.如何用另一个值替换数组中符合条件的元素?

难度:L1

05

用-1替换输入arr中的所有奇数。

输入:

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

期望的输出:

#> array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1])

点击空白处查看答案

arr[arr % 2 == 1] = -1

arr

#> array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1])

6.如何在确保输入数组不变的同时替换数组中符合条件的元素?

难度:L2

06

用-1替换输入arr中的所有奇数,但不能改变arr。

输入:

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

期望的输出:

out#> array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1])arr#> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

arr = np.arange(10)

out = np.where(arr % 2 == 1, -1, arr)

print(arr)

out

#> [0 1 2 3 4 5 6 7 8 9]

array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1])

7.如何重组数组?

难度:L1

07

将一维数组转换为有2行的二维数组。

输入:

np.arange(10)#> array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

期望的输出:

#> array([[0, 1, 2, 3, 4],#> [5, 6, 7, 8, 9]])

arr = np.arange(10)

arr.reshape(2, -1) # Setting to -1 automatically decides the number of cols

#> array([[0, 1, 2, 3, 4],

#> [5, 6, 7, 8, 9]])

8.如何垂直合并两个数组?

难度:L2

08

将数组a和数组b垂直合并。

输入:

a = np.arange(10).reshape(2,-1)b = np.repeat(1, 10).reshape(2,-1)

期望的输出:

#> array([[0, 1, 2, 3, 4],

#> [5, 6, 7, 8, 9],

#> [1, 1, 1, 1, 1],

#> [1, 1, 1, 1, 1]])

a = np.arange(10).reshape(2,-1)

b = np.repeat(1, 10).reshape(2,-1)

# Answers

# Method 1:

np.concatenate([a, b], axis=0)

# Method 2:

np.vstack([a, b])

# Method 3:

np.r_[a, b]

#> array([[0, 1, 2, 3, 4],

#> [5, 6, 7, 8, 9],

#> [1, 1, 1, 1, 1],

#> [1, 1, 1, 1, 1]])

9.如何水平合并两个数组?

难度:L2

09

将数组a和数组b水平合并。

输入:

a = np.arange(10).reshape(2,-1)b = np.repeat(1, 10).reshape(2,-1)

期望的输出:

#> array([[0, 1, 2, 3, 4, 1, 1, 1, 1, 1],#> [5, 6, 7, 8, 9, 1, 1, 1, 1, 1]])

a = np.arange(10).reshape(2,-1)

b = np.repeat(1, 10).reshape(2,-1)

# Answers

# Method 1:

np.concatenate([a, b], axis=1)

# Method 2:

np.hstack([a, b])

# Method 3:

np.c_[a, b]

#> array([[0, 1, 2, 3, 4, 1, 1, 1, 1, 1],

#> [5, 6, 7, 8, 9, 1, 1, 1, 1, 1]])

10.如何在没有hardcode的情况下在NumPy里生成自定义数组?

难度:L2

10

在没有hardcode的情况下,用数组a和NumPy函数输出以下目标数组。

输入:

a = np.array([1,2,3])

期望的输出:

#> array([1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3])

点击空白处查看答案

np.r_[np.repeat(a, 3), np.tile(a, 3)]

#> array([1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3])

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据分析
    +关注

    关注

    2

    文章

    1524

    浏览量

    36377
  • python
    +关注

    关注

    58

    文章

    4889

    浏览量

    90345

原文标题:真题演练(一):数据分析必备的NumPy技巧(Python)

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    利用数据API构建实时数据分析与可视化报表系统

    API(涵盖销售统计、用户画像、流量分析等)进行高效的数据整合、分析,并实现 自定义报表生成 和 实时数据可视化 ,为商业决策提供强大支持。 一、
    的头像 发表于 04-02 15:56 191次阅读
    利用<b class='flag-5'>数据</b>API构建实时<b class='flag-5'>数据分析</b>与可视化报表系统

    API数据分析:淘宝流量来源分析,渠道优化!

    优化渠道策略。我们将使用Python作为工具,结合数据分析和统计方法,确保过程真实可靠。 1. 理解淘宝流量来源 淘宝流量主要来自多个渠道,包括: 直接访问 :用户直接输入淘宝网址或从收藏夹访问。 搜索引擎 :如百度或淘宝内搜索,贡献
    的头像 发表于 01-23 13:42 445次阅读
    API<b class='flag-5'>数据分析</b>:淘宝流量来源<b class='flag-5'>分析</b>,渠道优化!

    利用拼多多用户API进行粉丝数据分析,有效提升用户粘性

    这些API进行粉丝数据分析,并基于分析结果制定增强用户粘性的策略。 一、 拼多多用户API概览 拼多多开放平台提供了丰富的API接口,涵盖商品、交易、用户、物流等多个维度。对于粉丝数据分析,以下几个API尤为关键: 粉丝明细查询
    的头像 发表于 12-30 10:38 403次阅读
    利用拼多多用户API进行粉丝<b class='flag-5'>数据分析</b>,有效提升用户粘性

    淘宝数据分析API:用户行为洞察,精准营销决策!

    ​ 在竞争激烈的电商领域,数据已成为驱动增长的核心引擎。淘宝作为国内领先的电商平台,其开放的数据分析API为商家提供了强大的工具,能够深入挖掘用户行为,并基于这些洞察做出更精准、更有效的营销决策
    的头像 发表于 12-25 14:12 438次阅读
    淘宝<b class='flag-5'>数据分析</b>API:用户行为洞察,精准营销决策!

    经营数据分析可以通过哪些方式

    在数聚股份看来,提起经营数据分析,大家往往会联想到一些密密麻麻的数字表格,或是高级的数据建模手法,再或是华丽的数据报表。其实,“ 分析 ”本身是每个人都具备的能力,对于业务决策者而言,
    的头像 发表于 12-05 16:31 758次阅读

    广立微DE-G零断档重构智能数据分析

    近日,数据分析领域被一则消息推上风口浪尖:一家老牌软件巨头将撤出中国。在此背景下,其旗下以灵活著称的数据分析软件,在中国市场的未来将面临极大的不确定性。
    的头像 发表于 11-07 10:39 862次阅读

    【产品介绍】Altair RapidMiner数据分析与人工智能平台

    AltairRapidMiner赋能组织解锁数据洞察,运用数据分析和先进的人工智能自动化,提供可扩展的面向未来的解决方案。Altair数据分析和人工智能平台包括数据准备、
    的头像 发表于 09-18 17:56 1057次阅读
    【产品介绍】Altair RapidMiner<b class='flag-5'>数据分析</b>与人工智能平台

    电磁兼容与电磁干扰在电磁兼容性大数据分析中的智能管理平台

    电磁兼容与电磁干扰在电磁兼容性大数据分析中的智能管理系统
    的头像 发表于 09-17 14:58 774次阅读
    电磁兼容与电磁干扰在电磁兼容性大<b class='flag-5'>数据分析</b>中的智能管理平台

    电磁兼容与电磁干扰在电磁兼容性大数据分析中的智能管理系统

    电磁兼容与电磁干扰在电磁兼容性大数据分析中的智能管理系统
    的头像 发表于 09-17 14:42 1089次阅读
    电磁兼容与电磁干扰在电磁兼容性大<b class='flag-5'>数据分析</b>中的智能管理系统

    普迪飞 Exensio®数据分析平台 | Test Operations解锁半导体测试新纪元

    TestOperations是Exensio数据分析平台的四个主要模块之一。T-Ops模块旨在帮助集成器件制造商(IDM)、无晶圆厂半导体公司(Fabless)和外包半导体(产品)封测厂(OSAT
    的头像 发表于 08-19 13:53 1789次阅读
    普迪飞 Exensio®<b class='flag-5'>数据分析</b>平台 | Test Operations解锁半导体测试新纪元

    如何通过数据分析识别设备故障模式?

    通过数据分析识别设备故障模式,本质是从声振温等多维数据中提取故障特征,建立 “数据特征 - 故障类型” 的映射关系,核心可通过特征提取、模式匹配、趋势分析三步实现,精准定位故障根源与发
    的头像 发表于 08-19 11:14 1165次阅读
    如何通过<b class='flag-5'>数据分析</b>识别设备故障模式?

    yolov11转kmodel,numpy是要降级为1.x吗?

    python3.9,yolo是最新的稳定版,和yolo捆绑pip安装的numpy是2.0.1 错误日志
    发表于 08-11 08:16

    构建自定义电商数据分析API

      在电商业务中,数据是驱动决策的核心。随着数据量的增长,企业需要实时、灵活的分析工具来监控销售、用户行为和库存等指标。一个自定义电商数据分析API(应用程序接口)可以自动化
    的头像 发表于 07-17 14:44 751次阅读
    构建自定义电商<b class='flag-5'>数据分析</b>API

    AI数据分析仪设计原理图:RapidIO信号接入 平板AI数据分析

    AI数据分析仪, 平板数据分析仪, 数据分析仪, AI边缘计算, 高带宽数据输入
    的头像 发表于 07-17 09:20 914次阅读
    AI<b class='flag-5'>数据分析</b>仪设计原理图:RapidIO信号接入 平板AI<b class='flag-5'>数据分析</b>仪

    如何使用协议分析仪进行数据分析与可视化

    使用协议分析仪进行数据分析与可视化,需结合数据捕获、协议解码、统计分析及可视化工具,将原始数据转化为可解读的图表和报告。以下是详细步骤及关键
    发表于 07-16 14:16