NumPy学习笔记(1)

1. 程序开头导入库

import numpy as np

2. 创建数组(ndarray)

a = [1,2,3,4]

aa = np.array(a)--------->生成一维数组

bb = np.array([a,a])----->生成二维数组

aa.shape

bb.shape------------------>获得尺寸(2, 4)

bb.shape = (1,8) ---------> Reshape为1X8数组,8可以用-1表示,这样自动计算尺寸

c = bb.reshape(2,4)------>用reshape函数获得新数组,注意这里c与bb共享存储空间。若想隔离,需要用copy()函数

3. 数组的类型

bb.dtype------------------------>获得bb的数值类型,可能为int32, int64, float64, complex128等

生成不同数值类型的数组:

d = np.array([1,2,3,4], dtype=np.complex)

完整的类型列表:

>>> set(np.typeDict.values())

set([<type ‘numpy.bool_‘>, <type ‘numpy.int8‘>, <type ‘numpy.void‘>, <type ‘numpy.int32‘>, <type ‘numpy.uint32‘>, <type ‘numpy.float128‘>, <type ‘numpy.string_‘>, <type ‘numpy.uint8‘>, <type ‘numpy.float32‘>, <type ‘numpy.complex256‘>, <type ‘numpy.int64‘>,
<type ‘numpy.uint64‘>, <type ‘numpy.complex64‘>, <type ‘numpy.unicode_‘>, <type ‘numpy.uint64‘>, <type ‘numpy.int16‘>, <type ‘numpy.uint16‘>, <type ‘numpy.float64‘>, <type ‘numpy.object_‘>, <type ‘numpy.complex128‘>, <type ‘numpy.int64‘>])

4. 几个专门创建数组的函数

np.arrange(start, end, step)---------------->生成等差数列,不包括end值

np.linspace(start, end, num)--------------------------->生成等差数列,默认包括end值

np.linspace(start,  end, num, endpoint=False)-------->不包括end值

np.logspace(start, end, num, base, endpoint)------------------------->生成等比数列

np.zeros(size, dtype), np.zeros_like(other)

np.ones(size, dtype),np.ones_like(other)

np.random.rand(size, dtype)------------------------------------>生成随机数组

np.empty(size, dtype)--------------------------------------------->仅分配空间,不初始化,最快!

np.fromstring(str, dtype)-------------------------------------------->从字符串创建数组

np.frombuffer()

np.fromfile()

np.fromfunction(funcname, size)

5. 数组的切片和下标访问

一维数组的索引如下:

0,1,2,。。。-3,-2,-1,即负数会从后往前数

a[start:end:step]----------------------->取数组的一个切片,与原数组共享内存。不包括end值。

省略start,表示start = 0;

省略end,表示end = -1;

省略step,表示step = 1;

单独生成切片可以用slice函数

slice(start, end, step) = start:end:step

slice(None, end, step) = :end:step

slice(None, None, None) = :

另外也可以用s_对象生成slice

>>> np.s_[::2,2:]

(slice(None, None, 2), slice(2, None, None))

二维数组取一次下标,得到一维数组(想想C中的数组)

多次下标可以用元组方式,如x[2][2]等价于x[2,2],或者直观一点x[(2,2)]

整数索引列表查表

idx = [1, 4, 5, 7]

y = x[idx]------------------->取出x中[1,4,5,7]位置处的值,放入y,不和原数组共享内存

整数数组也是一样的

布尔数组(np.array([True, False, True,...])):只取数组中相应位置为True的元素;

布尔列表[True, False, True, ...]:将按照整数方式取, True = 1, False = 0.

时间: 2024-10-29 00:26:49

NumPy学习笔记(1)的相关文章

Numpy学习笔记(二)

最近一直在学HTML5和CSS3,Numpy的东西都有些生疏,那本书是已经看完了的,紧跟着相关的代码也都敲了一遍,还是发现了一些问题,因为这样的学习方式,总感觉太被动,紧紧跟着示例代码,缺少了整体观,即使你现在问我Numpy可以处理什么问题,我还是回答不出.所以,有必要回头重来一遍,再一次审视代码背后的意义,写博客真的是一个很不错的方式,毕竟,如果你不懂,写出来的文字必然也是混乱的. 那,下面记录一下Numpy学习笔记(二) Example1 文件读写:数据不应该仅仅存在内存里,应该及时保存在硬

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的科学计算能

NumPy学习笔记:4、高级运算

一.多项式 举个例子,: >>> p = np.poly1d([3, 2, -1]) >>> p(0) -1 >>> p.roots array([-1. , 0.33333333]) >>> p.order 2 1.更多与多项式相关 同样以 为例: >>> p = np.polynomial.Polynomial([-1, 2, 3]) # coefs in different order! >>>

Python numpy学习笔记(一)

下边代码是关于numpy的一些基本用法,包括数组和矩阵操作等... 1 import numpy as np 2 print "<== print version ==>" 3 print np.version.version 4 print "<== 1-dimensional array ==>" 5 print np.array([1, 2, 3, 4, 5]) 6 print "<== 2-dimentional ar

NumPy学习笔记:3、更加复杂的数组

一.更多的数据类型 1.Casting (1) 在混合数据类型的运算中,最终运算结果的数据类型与size更大的数据类型相同. >>> np.array([1, 2, 3]) + 1.5 array([ 2.5, 3.5, 4.5]) (2) 给数组中的元素赋值,并不能改变整个数组的数据类型.(若把整型数组中的某个元素赋值为浮点型数据,则这个浮点型数据会被截断为整型) >>> a = np.array([1, 2, 3]) >>> a.dtype dty

NumPY学习笔记

对于被多年数据库应用锻炼成"二维表"思路的人来说,NumPY的ndarray实在是太好用了! 1.创建数组 可以用np.array(python数组),np.ones,np.zeros,np.arange等方式创建,需要注意对zeros传递参数,需要括起来 a=np.zeros((2,3))array([[ 0.,  0.,  0.],       [ 0.,  0.,  0.]]) 2.不支持多种类型并存 >>> c=np.array(['aa',1,2])>

Numpy学习笔记练习代码 ——(二)

import numpy as np A = np.array([(1,'First',0.5,1+2j),(2,'Second',1.5,1+3j),(3,'Third',0.8,1-2j)],dtype=('i2,a6,f4,c8')) A Out[3]: array([(1, b'First', 0.5 , 1.+2.j), (2, b'Second', 1.5 , 1.+3.j), (3, b'Third', 0.80000001, 1.-2.j)], dtype=[('f0', '<i