Python3-笔记-numpy学习指南-002-基础

import numpy

# 创建一维的数组对象a = numpy.arange(5)print(a)print(a.dtype) # 类型print(a.shape) # 数据维度

[0 1 2 3 4]int32(5,)

# 创建二维的数组对象print(‘-------‘)m = numpy.array([numpy.arange(2), numpy.arange(2)])print(m.shape) # 数据维度print(m, m[0], m[1], m[1][1], sep=‘---‘) # 元素的选取

(2, 2)[[0 1] [0 1]]---[0 1]---[0 1]---1

# numpy的数据类型

# numpy的数据类型,类型转换,占用内存字节数
f64 = numpy.float64(42)
print(f64, type(f64), f64.dtype, f64.dtype.itemsize)
i8 = numpy.int8(42.0)
print(i8, type(i8), i8.dtype, i8.dtype.itemsize)
b = numpy.bool(42)
print(b, type(b))
b = numpy.bool(0)
print(b, type(b))
b = numpy.bool(42.0)
print(b, type(b))
f = numpy.float(True)
print(f, type(f))
f = numpy.float(False)
print(f, type(f))
u16 = numpy.arange(7, dtype = numpy.uint16)
print(u16, type(u16), u16.dtype, u16.dtype.itemsize)

42.0 <class ‘numpy.float64‘> float64 8
42 <class ‘numpy.int8‘> int8 1
True <class ‘bool‘>
False <class ‘bool‘>
True <class ‘bool‘>
1.0 <class ‘float‘>
0.0 <class ‘float‘>
[0 1 2 3 4 5 6] <class ‘numpy.ndarray‘> uint16 2

创建自定义数据类型

t = numpy.dtype([(‘name‘, str, 40), (‘numitems‘, numpy.int32), (‘price‘,numpy.float32)])
print(t)

[(‘name‘, ‘<U40‘), (‘numitems‘, ‘<i4‘), (‘price‘, ‘<f4‘)]

创建自定义数据类型的数组
itemz = numpy.array([(‘Meaning of life DVD‘, 42, 3.14), (‘Butter‘, 13, 2.72)], dtype=t)
print(itemz)
[(‘Meaning of life DVD‘, 42,  3.1400001 ) (‘Butter‘, 13,  2.72000003)]

一维数组的索引和切片

import numpy as npa = np.arange(9) # 创建数组aOut[4]: array([0, 1, 2, 3, 4, 5, 6, 7, 8])a[3:7] # 取中段Out[5]: array([3, 4, 5, 6])a[:7:2] # 有stepOut[6]: array([0, 2, 4, 6])a[::-1] # 翻转Out[7]: array([8, 7, 6, 5, 4, 3, 2, 1, 0])

多维数组的索引和切片

import numpy as npimport pprint

# 将一维数组变为 -> 两个数组,每个数组3行,每行4列(确保几个参数的乘积等于原数组size)b = np.arange(24).reshape(2, 3, 4)print(b)‘‘‘[[[ 0  1  2  3]  [ 4  5  6  7]  [ 8  9 10 11]]

[[12 13 14 15]  [16 17 18 19]  [20 21 22 23]]]‘‘‘print(b.shape)  # (2, 3, 4)  维度print(b[0, 0, 0]) # 0  取第一个数组的第一行第一列print(b[0, 0]) # [0 1 2 3] 取第一个数组的第一行print(b[0]) # 取第一个数组‘‘‘[[ 0  1  2  3] [ 4  5  6  7] [ 8  9 10 11]]‘‘‘print(b[:, 0, 0]) # [ 0 12] 取所有数组的第一行第一列print(b[:, :, 0])  # 取所有数组的所有行的第一列‘‘‘[[ 0  4  8] [12 16 20]]‘‘‘print(b[:, :, :]) # 同print(b)print(b[0, :, :]) # 同print(b[0])print(b[0, ...]) # 同print(b[0])print(‘-----------------‘)print(b[0, 1]) # [4 5 6 7]print(b[0, 1, ::2]) # [4 6]  使用间隔print(b[:, :, 1]) # 取所有数组所有行的第二列‘‘‘[[ 1  5  9] [13 17 21]]‘‘‘print(b[..., 1]) # 同print(b[:, :, 1])print(b[:, 1]) # 取所有数组的第二行‘‘‘[[ 4  5  6  7] [16 17 18 19]]‘‘‘print(b[0, :, 1]) # 取第一个数组的所有行的第二列 [1 5 9]print(b[0, :, -1]) # 取第一个数组的所有行的最后一列 [ 3  7 11]print(b[0, ::2, -1]) # 取第一个数组的所有行的最后一列且使用间隔 [ 3 11]print(b[0, ::-1, -1]) # 反向取第一个数组的所有行的最后一列 [11  7  3]print(b[::-1]) # 反向取所有数组‘‘‘[[[12 13 14 15]  [16 17 18 19]  [20 21 22 23]]

[[ 0  1  2  3]  [ 4  5  6  7]  [ 8  9 10 11]]]‘‘‘
print(b.ravel()) # 展平[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]print(b.flatten()) # 展平[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]b.shape = (6, 4) # 重新设置维度print(b)‘‘‘[[ 0  1  2  3] [ 4  5  6  7] [ 8  9 10 11] [12 13 14 15] [16 17 18 19] [20 21 22 23]]‘‘‘print(b.transpose()) # 矩阵转置‘‘‘[[ 0  4  8 12 16 20] [ 1  5  9 13 17 21] [ 2  6 10 14 18 22] [ 3  7 11 15 19 23]]‘‘‘

b.resize(2, 12) # 类似reshape,但会改变自身数据,而非返回赋值形式print(b)‘‘‘[[ 0  1  2  3  4  5  6  7  8  9 10 11] [12 13 14 15 16 17 18 19 20 21 22 23]]‘‘‘
 组合
a = np.arange(9).reshape(3, 3)print(a)‘‘‘[[0 1 2] [3 4 5] [6 7 8]]‘‘‘b = a * 2print(b)‘‘‘[[ 0  2  4] [ 6  8 10] [12 14 16]]‘‘‘print(np.hstack((a, b))) # 水平组合‘‘‘[[ 0  1  2  0  2  4] [ 3  4  5  6  8 10] [ 6  7  8 12 14 16]]‘‘‘print(np.concatenate((a, b), axis = 1)) # 同np.hstack((a, b))print(np.vstack((a, b))) # 垂直组合‘‘‘[[ 0  1  2] [ 3  4  5] [ 6  7  8] [ 0  2  4] [ 6  8 10] [12 14 16]]‘‘‘print(np.concatenate((a, b), axis = 0)) # 同np.vstack((a, b))print(np.dstack((a, b))) # 深度组合,没搞懂干啥用‘‘‘[[[ 0  0]  [ 1  2]  [ 2  4]]

[[ 3  6]  [ 4  8]  [ 5 10]]

[[ 6 12]  [ 7 14]  [ 8 16]]]‘‘‘

print(‘--------------‘)c = np.arange(2) # [0 1]d = c * 2 # [0 2]print(np.column_stack((c, d))) # 列组合‘‘‘[[0 0] [1 2]]‘‘‘print(np.column_stack((a, b)) == np.hstack((a, b))) # 同np.hstack((a, b))print(np.row_stack((c, d))) # 行组合‘‘‘[[0 1] [0 2]]‘‘‘print(np.row_stack((a, b)) == np.vstack((a, b))) # 同np.vstack((a, b))
 
时间: 2024-08-30 14:28:49

Python3-笔记-numpy学习指南-002-基础的相关文章

分享《Python数据分析基础教程:NumPy学习指南(第2版)》高清中文PDF+英文PDF+源代码

下载:https://pan.baidu.com/s/1YSD97Gd3gmmPmNkvuG0eew更多资料分享:http://blog.51cto.com/3215120 <Python数据分析基础教程:NumPy学习指南(第2版)>高清中文PDF+高清英文PDF+源代码 高清中文版PDF,249页,带目录和书签,文字能够复制粘贴:高清英文版PDF,310页,带目录和书签,文字能够复制粘贴:中英文两版可以对比学习.配套源代码:经典书籍,讲解详细:其中高清中文版如图: 原文地址:http://

Numpy学习:《Python数据分析基础教程NumPy学习指南第2版》中文PDF+英文PDF+代码

NumPy是一个优秀的科学计算库,提供了很多实用的数学函数.强大的多维数组对象和优异的计算性能,不仅可以取代Matlab和Mathematica的许多功能,而且业已成为Python科学计算生态系统的重要组成部分.但与这些商业产品不同,它是免费的开源软件. 推荐学习<Python数据分析基础教程NumPy学习指南第2版>,通过书中丰富的示例,学会Matplotlib绘图,并结合使用其他Python科学计算库(如SciPy和Scikits),让工作更有成效,让代码更加简洁而高效. 学习参考: &l

『Python』Numpy学习指南第十章_高端科学计算库scipy入门(系列完结)

简介: scipy包包含致力于科学计算中常见问题的各个工具箱.它的不同子模块相应于不同的应用.像插值,积分,优化,图像处理,,特殊函数等等. scipy可以与其它标准科学计算程序库进行比较,比如GSL(GNU C或C++科学计算库),或者Matlab工具箱.scipy是Python中科学计算程序的核心包;它用于有效地计算numpy矩阵,来让numpy和scipy协同工作. 在实现一个程序之前,值得检查下所需的数据处理方式是否已经在scipy中存在了.作为非专业程序员,科学家总是喜欢重新发明造轮子

『Python』Numpy学习指南第三章__常用函数

感觉心情渐渐变好了,加油! np.eye(2)np.savetxt('eye.txt',i2)c,v = np.loadtxt('data.csv', delimiter=',', usecols=(6,7), unpack=True) 1 # __*__coding=utf-8__*__ 2 3 import numpy as np 4 5 # 单位矩阵生成 6 i2 = np.eye(2) 7 print(i2) 8 9 # 保存为txt 10 np.savetxt('eye.txt',i2

『Python』Numpy学习指南第九章_使用Matplotlib绘图

坐标轴调节以及刻度调节参见:『Python』PIL&plt图像处理_矩阵转化&保存图清晰度调整 数据生成: 1 import numpy as np 2 import matplotlib.pyplot as plt 3 4 func = np.poly1d(np.array([1,2,3,4])) 5 func1 = func.deriv(m=1) # 求一阶导数 6 func2 = func.deriv(m=2) # 求二阶导数 7 8 x = np.linspace(-10,10,3

『Python』Numpy学习指南第五章_矩阵和通用函数

简单的矩阵生成以及合并操作: np.mat('1 2 3;4 5 6;7 8 9')np.bmat('A B;B A')np.arange(1,10).reshape(3,3) 1 import numpy as np 2 3 4 5 '''通用函数''' 6 7 # 字符串创建矩阵 8 # 也可以使用数组创建 9 A = np.mat('1 2 3;4 5 6;7 8 9') 10 # 数组创建矩阵 11 A = np.mat(np.arange(1,10).reshape(3,3)) # n

NumPy学习笔记 一

NumPy学习笔记 一 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分析>第四版(华东师范大学数学系).<概率论与数理统计>(陈希孺,中科大出版).<概率论与数理统计>第二版(茆诗松.程依明等编).<组合最优化:理论与方法>(现代数学译丛23).笔记一主要记录NumPy&SciPy及相关软件的环境准备部分. NumPy的官方网站

NumPy学习笔记 三 股票价格

NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分析>第四版(华东师范大学数学系).<概率论与数理统计>(陈希孺,中科大出版).<概率论与数理统计>第二版(茆诗松.程依明等编).<组合最优化:理论与方法>(现代数学译丛23).笔记三主要操作股票价格数据. 股票价格数据通常包括开盘价.最高价.最低价和收盘价.

Numpy学习笔记(一)

Python本身支持的数据结构不多,除了int.float和string等一些常规的之外,还有列表.元祖.字典,都有自己的属性和方法,怎么说呢,功能已经足够强大,解决一般的问题已经足够,可当数据量增大,计算形式变得多样,这种普通的数据结构效率不高,况且python本身对于数组的支持不是很好,这也是为什么会有一批类似于numpy.scipy.panda等第三方库,大大扩展了python的功能,胶水的本质越来越突出.学习的成本也不高,不会像重新学一门语言那么困难,况且据了解,python的科学计算能