NumPy是Python的一个高性能科学计算和数据分析基础库,提供了功能强大的多维数组对象ndarray。
jupyter notebook快速执行代码的快捷键:鼠标点击选中要指定的代码框,Shift + Enter组合键直接执行代码框中的全部代码。              Alt + Enter组合键执行完代码框中的代码在代码框的下面再添加一个空代码框。

1、创建数组

#引入numpy,并重命名为np,方便使用
import numpy as np

1.1、使用numpy内置的array函数创建数组

#创建一维数组
arr1 = np.array([1,2,3])
print(arr1)

结果:[1 2 3]

#创建二维数组
arr2 = np.array([[1,2,3],[4,5,6]])
print(arr2)

结果:[[1 2 3] [4 5 6]]

1.2、使用arange函数创建数组

#使用arange函数创建包含0到9 十个数字的一维数组

#注意:arange函数返回的数组默认第一个元素是0,结束元素是指定的数值前一个数字9
arr_1 = np.arange(10) 
print(arr_1)

结果:[0 1 2 3 4 5 6 7 8 9]

#通过arange函数设置“开始、结束、步长”三个参数创建包含1到10所有奇数的一维数组

#从1开始,到10前一位结束,步长为2表示相邻两个元素的差值是2
print(arr_2)
arr_2 = np.arange(1,10,2)

结果:[1 3 5 7 9]

1.3、全0、全1数组

#使用zeros函数创建一个包含10个全0数字的一维数组
z1 = np.zeros(10)
print(z1)

结果:[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]

#创建3行4列的二维全0数组
z2 = np.zeros((3,4))
print(z2)

结果:[[ 0. 0. 0. 0.] [ 0. 0. 0. 0.] [ 0. 0. 0. 0.]]

#创建全1数组
o1 = np.ones(5)
print(o1)

结果:[ 1. 1. 1. 1. 1.]

#创建3行4列全1二维数组
o2 = np.ones((3,4))
print(o2)

结果:[[ 1. 1. 1. 1.] [ 1. 1. 1. 1.] [ 1. 1. 1. 1.]]

2、数组的属性方法

#查看数组o2各维度的大小
o2.shape
#运行结果是一个元组(3,4)表示第1维的大小是3(也是就是3行),第2维的大小是4(也就是4列)

结果:(3, 4)

#查看o2第1维的大小(行数)
o2.shape[0]

结果:3

#查看o2第2维的大小(列数)
o2.shape[1]

结果:4

#查看数组中元素类型
o2.dtype

结果:dtype('float64')

#类型转换函数astype,数组元素由float64类型转换成int32类型,并返回一个新的数组o2_1,原数组o2元素类型不变
o2_1 = o2.astype(np.int32)

#o2数组类型不变
o2.dtype

结果:dtype('float64')

#o2_1数组中元素类型为int32
o2_1.dtype

结果:dtype('int32')

#创建字符串类型数组
arr_string = np.array(["12.78","23.15","34.5"])
arr_string.dtype 

结果:dtype('<U5')#dtype('<U5')表示字符串不超过5位

#将字符串数组转换成浮点类型数组
arr_float = arr_string.astype(np.float64)
print(arr_float)

结果:[ 12.78 23.15 34.5 ]

#float类型数组转换成整型数组,小数部分将会被截断
arr_int = arr_float.astype(np.int32)
print(arr_int)

结果:[12 23 34]

#numpy自动识别元素类型
np.array([1,2,3]).dtype

结果:dtype('int32')

Numpy学习一:ndarray数组对象的更多相关文章

  1. numpy学习之创建数组

    1.使用array函数创建数组 import numpy as np ndarray1 = np.array([1, 2, 3]) array([1, 2, 3]) ndarray2 = np.arr ...

  2. 3.2Python数据处理篇之Numpy系列(二)--- ndarray数组的创建与变换

    目录 (一)ndarray数组的创建 1.从列表以元组中创建: 2.使用函数创建: (二)ndarray数组的变换 1.维度的变换: 2.类型的变换: 目录: 1.ndarray数组的创建 2.nda ...

  3. OC学习篇之---数组对象的引用计数问题和自动释放池的概念

    之前一片文章中我们介绍了OC中的两个关键字@property和@synthesize的使用的使用: http://blog.csdn.net/jiangwei0910410003/article/de ...

  4. 初识numpy的多维数组对象ndarray

    PS:内容来源于<利用Python进行数据分析> 一.创建ndarray 1.array :将一个序列(嵌套序列)转换为一个数组(多维数组) In[2]: import numpy as ...

  5. NumPy学习_00 ndarray的创建

    1.使用array()函数创建数组 参数可以为:单层或嵌套列表:嵌套元组或元组列表:元组或列表组成的列表 # 导入numpy库 import numpy as np # 由单层列表创建 a = np. ...

  6. NumPy学习_01 ndarray相关概念

    1.NumPy库 NumPy = Numerical Python 是高性能科学计算和数据分析的基础库. pandas库充分借鉴了NumPy的相关概念,先行掌握NumPy库的用法,才能把pandas的 ...

  7. NumPy学习_02 ndarray基本操作

    1.算术运算符 它们只用于位置相同的元素之间,即为元素级的运算. 所得到的运算结果组成一个新的数组. 不用编写循环即可对数据执行批量运算.(矢量化) import numpy as np # 创建一个 ...

  8. Numpy学习三:数组运算

    1.转置 #reshape(shape)函数改变数组形状,shape是一个元组,表示数组的形状 创建一个包含15个元素的一维数组,通过reshape函数调整数组形状为3行5列的二维数组arr = np ...

  9. Numpy学习二:数组的索引与切片

    1.一维数组索引与切片#创建一维数组arr1d = np.arange(10)print(arr1d) 结果:[0 1 2 3 4 5 6 7 8 9] #数组的索引从0开始,通过索引获取第三个元素a ...

随机推荐

  1. 2018年 js 简易控制滚动条滚动的简单方法

    首先是es2015 的新api Element.scrollIntoView() // 滚动到最上方 等同于 dom.scrollIntoView(true) Element.scrollIntoVi ...

  2. HTML5新增表单验证

    HTML5新增属性: 属性 描述 placeholder 提供一种提示,输入域为空时显示,获得焦点输入内容后消失 required 规定输入域不能为空 pattern 规定验证input域的模式(正则 ...

  3. 初学html,任务2:写一个简单的登陆/注册界面

    先在body中把最基础的标签写出来 现在页面运行出来是这样的 就是一个没有任何样式的基础界面: 接下来我们为这些标签加上样式 首先还是让页面所有元素的padding和margin都设置为0, 清除浏览 ...

  4. vue与js混用

    Vue 的官方是不建议直接操作 DOM 的,Vue 的用途在于视图和数据的绑定.如果通过JQuery 直接操作 DOM 的话,势必会造成视图数据和模型数据的不匹配,这样 Vue 就失去它存在的意义了. ...

  5. 【转】【完全开源】百度地图Web service API C#.NET版,带地图显示控件、导航控件、POI查找控件

    [转][完全开源]百度地图Web service API C#.NET版,带地图显示控件.导航控件.POI查找控件 目录 概述 功能 如何使用 参考帮助 概述 源代码主要包含三个项目,BMap.NET ...

  6. HDU4521

    一个改变的最长上升子序列(LIS),这种题型做的很少,今天做起来很费劲,查了很多资料,还把最基础的LIS补了一遍,具体的看代码吧,我把思路都放在了注释里面 #include<iostream&g ...

  7. Vue源码解析---数据的双向绑定

    本文主要抽离Vue源码中数据双向绑定的核心代码,解析Vue是如何实现数据的双向绑定 核心思想是ES5的Object.defineProperty()和发布-订阅模式 整体结构 改造Vue实例中的dat ...

  8. 优雅的找出ArrayList中重复的元素

    https://blog.csdn.net/caoxiaohong1005/article/details/54286384

  9. 【此处有干货~】jmeter+ant+jenkins持续集成配置及过程中问题解决思路

    本人是一枚工作近三年的小测试,大学正好专业为软件测试,在工作中用到最多的是功能测试.接口测试.压力测试.偶尔会涉及到性能测试......(小白,很多观念技术跟大佬差距太大,勿喷) 在接口测试过程当中, ...

  10. 异常:No Spring WebApplicationInitializer types detected on classpath

    原因: 启动服务提供者/服务消费者-->去注册中心Zookeeper无法注册这个服务 / 在监控中心无法发现服务 异常提示:No Spring WebApplicationInitializer ...