NumPy学习_00 ndarray的创建
1.使用array()函数创建数组
参数可以为:单层或嵌套列表;嵌套元组或元组列表;元组或列表组成的列表
# 导入numpy库
import numpy as np
# 由单层列表创建
a = np.array([1, 2, 3])
print(a)
[1 2 3]
# 由嵌套列表创建
b = np.array([[1.3, 2.4], [0.3, 4.1]])
print(b)
[[1.3 2.4]
[0.3 4.1]]
# 由嵌套元组创建
c = np.array((("p", "y", "t"), ("h", "o", "n")))
print(c)
[['p' 'y' 't']
['h' 'o' 'n']]
# 由元组列表创建
d = np.array([(3, 2, 1), (7, 8, 9)])
print(d)
[[3 2 1]
[7 8 9]]
# 由元组或列表组成的列表
e = np.array([(6, 1, 8), [7, 5, 3], (2, 9, 4)])
print(e)
[[6 1 8]
[7 5 3]
[2 9 4]]
# array创建数组返回的类型
print(type(a))
<class 'numpy.ndarray'>
2.数据类型
# 数组元素是同质的,即类型和大小都相同
# 数据类型由dtype对象来指定
# itemsize属性,定义了数组中每个元素的长度占几个字节
print(a.dtype.name, a.itemsize)
print(b.dtype.name, b.itemsize)
print(c.dtype.name, c.itemsize)
print(d.dtype.name, d.itemsize)
print(e.dtype.name, e.itemsize)
# array()函数默认根据列表或元素序列中各元素的数据类型,为ndarray对象指定最适合的数据类型。
# 也可以使用dtype选项作为array()的参数,明确指定dtype的类型。
# 如下定义一个复数数组
f = np.array([[1, 2, 3], [4, 5, 6]], dtype=complex)
print("-------------------------")
print(f)
int32 4
float64 8
str32 4
int32 4
int32 4
-------------------------
[[1.+0.j 2.+0.j 3.+0.j]
[4.+0.j 5.+0.j 6.+0.j]]
3.NumPy库自带的数组创建方法
# zeros()函数生成由shape参数指定维度信息,元素均为0的数组。
# 元素的数据类型为float64
g = np.zeros((3, 3))
print(g)
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
# ones()函数与上述函数相似
# 元素的数据类型为float64
h = np.ones((3, 3))
print(h)
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
# arange()函数,按特定规则生成包含一个数值序列的数组。
# arange(begin, end, step)
# 参数begin省略则从0开始
# 参数end应该比序列最后一个值大
# 参数step可以是浮点型
i = np.arange(0, 10)
j = np.arange(10)
k = np.arange(4, 10)
m = np.arange(0, 10, 2)
n = np.arange(0, 10, 1.3)
print(i)
print("-------------------------")
print(j)
print("-------------------------")
print(k)
print("-------------------------")
print(m)
print("-------------------------")
print(n)
[0 1 2 3 4 5 6 7 8 9]
-------------------------
[0 1 2 3 4 5 6 7 8 9]
-------------------------
[4 5 6 7 8 9]
-------------------------
[0 2 4 6 8]
-------------------------
[0. 1.3 2.6 3.9 5.2 6.5 7.8 9.1]
# 结合reshape()函数进行拆分
x1 = np.arange(0, 12).reshape(3, 4)
print(x1)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
# linspace(begin, end, cnt)函数
# 第三个参数表示需要将begin和end范围分成几个部分
x2 = np.linspace(0, 10 , 6)
print(x2)
[ 0. 2. 4. 6. 8. 10.]
# random()函数以随机数填充数组
# 每次生成元素均会有所不同
x3 = np.random.random(3)
x4 = np.random.random((3, 3))
print(x3)
print("------------------------------------------")
print(x4)
[0.8223299 0.83657551 0.797519 ]
------------------------------------------
[[0.14562367 0.8657818 0.96508416]
[0.15094085 0.27332193 0.52784433]
[0.0260834 0.3047311 0.65182433]]
#eye(N)函数创建一个NxN单位矩阵(对角线为1,其余为0)
x5 = np.eye(4)
print(x5)
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
# 使用empty()函数返回全0数组的想法是不安全的
x6 = np.empty((2,3))
print(x6)
[[1. 2. 3.]
[4. 5. 6.]]
NumPy学习_00 ndarray的创建的更多相关文章
- NumPy学习_02 ndarray基本操作
1.算术运算符 它们只用于位置相同的元素之间,即为元素级的运算. 所得到的运算结果组成一个新的数组. 不用编写循环即可对数据执行批量运算.(矢量化) import numpy as np # 创建一个 ...
- NumPy学习_01 ndarray相关概念
1.NumPy库 NumPy = Numerical Python 是高性能科学计算和数据分析的基础库. pandas库充分借鉴了NumPy的相关概念,先行掌握NumPy库的用法,才能把pandas的 ...
- Python数据分析:Numpy学习笔记
Numpy学习笔记 ndarray多维数组 创建 import numpy as np np.array([1,2,3,4]) np.array([1,2,3,4,],[5,6,7,8]) np.ze ...
- Numpy学习之——数组创建
Numpy学习之--数组创建 过程展示 import numpy as np a = np.array([2,3,9]) a array([2, 3, 9]) a.dtype dtype('int32 ...
- 数据分析之Pandas和Numpy学习笔记(持续更新)<1>
pandas and numpy notebook 最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...
- Python NumPy学习总结
一.NumPy简介 其官网是:http://www.numpy.org/ NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Num ...
- NumPy学习(让数据处理变简单)
NumPy学习(一) NumPy数组创建 NumPy数组属性 NumPy数学算术与算数运算 NumPy数组创建 NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型. 它描述相同 ...
- numpy 学习笔记
numpy 学习笔记 导入 numpy 包 import numpy as np 声明 ndarray 的几种方法 方法一,从list中创建 l = [[1,2,3], [4,5,6], [7,8,9 ...
- NumPy 从已有的数组创建数组
NumPy 从已有的数组创建数组 本章节我们将学习如何从已有的数组创建数组. numpy.asarray numpy.asarray 类似 numpy.array,但 numpy.asarray 只有 ...
随机推荐
- mysql-SQL优化总结
1.查询首先考虑在where和order by设计的列上建立索引,尽量避免全表扫描. 2.尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描. select ...
- c++ singleton单例模式
方法1:加锁的经典懒汉实现: class singleton { public: static pthread_mutex_t mutex; static singleton* initance(); ...
- html中的title和alt
alt是html标签的属性,而title既是html标签,又是html属性. title标签这个不用多说,网页的标题就是写在<title></title>这对标签之内的.tit ...
- 微信开发获取media_id错误码汇总
微信开发遇到的错误汇总: 1. 错误代码40001 "errcode": 40001, "errmsg": "invalid credentia ...
- 【转】C++易混知识点3. New Operator, Operator New, Placement New 实例分析,比较区别
我们知道,C++中引入了New 这个内置符号,很大方便了指针的使用,程序员不必关注与这块堆上新分配的内存是如何来的,如何初始化的,然后如何转换为我们想要的类型指针的.现在,我们重点来分析下这个NEW内 ...
- 【转】 SED多行模式空间
1. sed执行模板=sed '模式{命令1;命令2}' 即逐行读入模式空间,执行命令,最后输出打印出来 2. 为方便下面,先说下p和P,p打印当前模式空间内容,追加到默认输出之后,P打印当前模式空间 ...
- 【转】vim取消高亮显示
vim是vi的加强版. 进入vim或编辑完毕按esc后,输入/可帮助查找字符串,例如/main帮助查找main函数,找到的main高亮显示. 取消高量显示的两个办法: 1)按esc键,输入:nohl ...
- Haproxy+Keepalived负载均衡
Haproxy介绍 HAProxy是一个特别适用于高可用性环境的TCP/HTTP开源的反向代理和负载均衡软件.在7层负载均衡方面的功能很强大(支持cookie track, header rewrit ...
- 01-Go命令与基础
什么是Go? Go是一门并发支持.垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态的高效开之间拥有良好平衡点的一门编程语言. Go的主要特点有哪些? 类型安全和内存安全 以非 ...
- Prime - 程序员的修养
求质数算法的N种境界 求质数算法的N种境界[1] - 试除法和初级筛法 过程 尽管题目并没有要我们写一个最优的算法,但是身为一个程序员,优化应该是一种习惯,在编程的过程中,随着思考进行优化. 如果你只 ...