numpy学习

In [8]:

import numpy as np
array = np.array([[1,2,3],
                 [2,3,5]])
print(array)
[[1 2 3]
 [2 3 5]]

In [9]:

array.ndim

Out[9]:

2

In [10]:

array.shape

Out[10]:

(2, 3)

In [11]:

array.size

Out[11]:

6

In [17]:

a=np.array([1,2,3],dtype=np.int)
print(a)
print(a.dtype)
b=np.array([1,2,3],dtype=np.float)
print(b)
print(b.dtype)
[1 2 3]
int32
[ 1.  2.  3.]
float64

In [19]:

array0 = np.zeros((3,4))
print(array0)
[[ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]]

In [21]:

array1 = np.ones((3,4))
print(array1)
[[ 1.  1.  1.  1.]
 [ 1.  1.  1.  1.]
 [ 1.  1.  1.  1.]]

In [23]:

array2 = np.empty((3,4))
print(array2)
[[ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]]

In [24]:

array3 = np.arange(10,20,2)
print(array3)
[10 12 14 16 18]

In [26]:

array4 = np.arange(12).reshape((3,4))
print(array4)
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

In [27]:

array5 = np.linspace(1,10,25)
print(array5)
[  1.      1.375   1.75    2.125   2.5     2.875   3.25    3.625   4.
   4.375   4.75    5.125   5.5     5.875   6.25    6.625   7.      7.375
   7.75    8.125   8.5     8.875   9.25    9.625  10.   ]

In [30]:

array6 = np.linspace(1,10,12).reshape((3,4))
print(array6)
[[  1.           1.81818182   2.63636364   3.45454545]
 [  4.27272727   5.09090909   5.90909091   6.72727273]
 [  7.54545455   8.36363636   9.18181818  10.        ]]

In [38]:

a=np.array([10,20,30,40])
b=np.arange(4)
c=a-b
print(c)
[10 19 28 37]

In [34]:

c=b**3
print(c)
[ 0  1  8 27]

In [35]:

c=10*np.sin(a)
print(c)
[-5.44021111  9.12945251 -9.88031624  7.4511316 ]

In [36]:

print(b)
print(b<3)
print(b==3)
[0 1 2 3]
[ True  True  True False]
[False False False  True]

In [44]:

a=np.array([[1,2,3],[3,4,5]])
b=np.arange(6).reshape((3,2))
print(a)
print(b)
#c=a*b
c_dot=np.dot(a,b)
print(c_dot)
c_dot2=a.dot(b)
print(c_dot2)
[[1 2 3]
 [3 4 5]]
[[0 1]
 [2 3]
 [4 5]]
[[16 22]
 [28 40]]
[[16 22]
 [28 40]]

In [50]:

a=np.random.random((2,4))
print(a)
print(np.sum(a))
print(np.max(a))
print(np.min(a))
[[ 0.4601967   0.93594758  0.5499286   0.41483107]
 [ 0.5729537   0.04874679  0.26190708  0.5702891 ]]
3.81480060629
0.935947580711
0.0487467894088

In [52]:

a=np.random.random((2,4))
print(a)
print(np.sum(a,axis=1))  #axis=1为行
print(np.max(a,axis=0))  #axis=0为列
print(np.min(a,axis=1))  #行
[[ 0.47054195  0.44146948  0.71298909  0.8230615 ]
 [ 0.155426    0.06085024  0.36118835  0.45072419]]
[ 2.44806202  1.02818877]
[ 0.47054195  0.44146948  0.71298909  0.8230615 ]
[ 0.44146948  0.06085024]

In [67]:

A=np.arange(2,14).reshape((3,4))
print(A)
print(np.argmin(A))
print(np.argmax(A))
[[ 2  3  4  5]
 [ 6  7  8  9]
 [10 11 12 13]]
0
11

In [63]:

print(np.mean(A))
print(A.mean())        #平均值
print(np.average(A))   #平均值
print(np.median(A))    #中位数
7.5
7.5
7.5
7.5

In [68]:

print(np.cumsum(A))   #累加
[ 2  5  9 14 20 27 35 44 54 65 77 90]

In [69]:

print(np.diff(A))   #累差
[[1 1 1]
 [1 1 1]
 [1 1 1]]

In [72]:

print(np.nonzero(A))   #
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))

In [74]:

A=np.arange(14,2,-1).reshape((3,4))
print(A)
print(np.sort(A))   #按行排序
[[14 13 12 11]
 [10  9  8  7]
 [ 6  5  4  3]]
[[11 12 13 14]
 [ 7  8  9 10]
 [ 3  4  5  6]]

In [78]:

print(A)
print(A.T)   #行列数交换。矩阵反向  也可以表示成transpose(A)
print(A.T.dot(A))   #求矩阵相乘
[[14 13 12 11]
 [10  9  8  7]
 [ 6  5  4  3]]
[[14 10  6]
 [13  9  5]
 [12  8  4]
 [11  7  3]]
[[332 302 272 242]
 [302 275 248 221]
 [272 248 224 200]
 [242 221 200 179]]

In [79]:

print(A)
print(np.clip(A,5,9))   #小于5大于9的都替换成5或9,其他数保留不变。
[[14 13 12 11]
 [10  9  8  7]
 [ 6  5  4  3]]
[[9 9 9 9]
 [9 9 8 7]
 [6 5 5 5]]

In [81]:

print(A)
print(np.mean(A,axis=1))   #行平均值
print(np.mean(A,axis=0))   #列平均值
[[14 13 12 11]
 [10  9  8  7]
 [ 6  5  4  3]]
[ 12.5   8.5   4.5]
[ 10.   9.   8.   7.]

In [86]:

A=np.arange(3,15).reshape((3,4))
print(A)
print(A[2])     #同 A[2,:]   第3行的所有数
print(A[2][1])   #同A[2,1]
print(A[:,1])   #第一列的所有数
print(A[1,1:3])
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
[11 12 13 14]
12
[ 4  8 12]
[8 9]

In [87]:

A=np.arange(3,15).reshape((3,4))
print(A)
for row in A:
    print(row)
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
[3 4 5 6]
[ 7  8  9 10]
[11 12 13 14]

In [89]:

A=np.arange(3,15).reshape((3,4))
print(A)
for column in A.T:
    print(column)
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
[ 3  7 11]
[ 4  8 12]
[ 5  9 13]
[ 6 10 14]

In [91]:

A=np.arange(3,15).reshape((3,4))
print(A)
print(A.flatten())
for i in A.flat:
    print(i)
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
[ 3  4  5  6  7  8  9 10 11 12 13 14]
3
4
5
6
7
8
9
10
11
12
13
14

In [96]:

A=np.array([1,2,3])
B=np.array([4,5,6])
c=np.vstack((A,B))    #上下合并
print(A.shape)
print(c)
print(c.shape)
(3,)
[[1 2 3]
 [4 5 6]]
(2, 3)

In [97]:

d=np.hstack((A,B))   #左右合并
print(d)
print(d.shape)
[1 2 3 4 5 6]
(6,)

In [99]:

print(A)
print(A.T)
[1 2 3]
[1 2 3]

In [105]:

print(A)
print(A[:,np.newaxis],A[:,np.newaxis].shape)
[1 2 3]
[[1]
 [2]
 [3]] (3, 1)

In [104]:

print(A,A.shape)
print(A[np.newaxis:],A[np.newaxis:].shape)
[1 2 3] (3,)
[1 2 3] (3,)

In [107]:

A=np.array([1,2,3])[:,np.newaxis]    #以列作为维度
B=np.array([4,5,6])[:,np.newaxis]
c=np.vstack((A,B))    #上下合并
d=np.hstack((A,B))    #左右合并
print(A)
print(B)
print(c)
print(d)
[[1]
 [2]
 [3]]
[[4]
 [5]
 [6]]
[[1]
 [2]
 [3]
 [4]
 [5]
 [6]]
[[1 4]
 [2 5]
 [3 6]]

In [112]:

A=np.array([1,2,3])[:,np.newaxis]    #以列作为维度
B=np.array([4,5,6])[:,np.newaxis]
e=np.concatenate((A,B,B,A),axis=0)   #按列合并。等同vstack((A,B))  上下合并
print(e)
f=np.concatenate((A,B,B,A),axis=1)    #按行合并。等同hstack((A,B))  左右合并
print(f)
[[1]
 [2]
 [3]
 [4]
 [5]
 [6]
 [4]
 [5]
 [6]
 [1]
 [2]
 [3]]
[[1 4 4 1]
 [2 5 5 2]
 [3 6 6 3]]

In [120]:

A=np.arange(12).reshape((3,4))
print(A)
b=np.split(A,2,axis=1)   #axis=1 按列来分割
print(b)
c=np.split(A,3,axis=0)    #axis=0 按行来分割
print(c)
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2,  3],
       [ 6,  7],
       [10, 11]])]
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]

In [122]:

print(A)
d=np.array_split(A,3,axis=1)  #不等分割
print(d)
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2],
       [ 6],
       [10]]), array([[ 3],
       [ 7],
       [11]])]

In [124]:

print(A)
b=np.vsplit(A,3)   #上下分割   按行分割   同 split(A,3,axis=0)
print(b)
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]

In [125]:

print(A)
b=np.hsplit(A,2)   #左右分割   按列分割   同 split(A,2,axis=1)
print(b)
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2,  3],
       [ 6,  7],
       [10, 11]])]

In [130]:

a=np.array([1,2,3,4])
b=a
c=a
d=b
print(a,b,c,d)
print(b is a)
a[0]=11
print(a,b,c,d)
b[1:3]=[22,33]
print(a,b,c,d)
[1 2 3 4] [1 2 3 4] [1 2 3 4] [1 2 3 4]
True
[11  2  3  4] [11  2  3  4] [11  2  3  4] [11  2  3  4]
[11 22 33  4] [11 22 33  4] [11 22 33  4] [11 22 33  4]

In [137]:

a=np.array([1,2,3,4])
e=a.copy()  #deep copy
print(e,a)
print(e is a)
a[0]=55
print(e,a)
[1 2 3 4] [1 2 3 4]
False
[1 2 3 4] [55  2  3  4]
时间: 2024-10-29 05:53:31

numpy学习的相关文章

Numpy学习笔记(一)

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

Numpy学习笔记(二)

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

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

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

NumPy学习笔记 一

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

NumPy学习笔记 三 股票价格

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

numpy 学习总结

numpy 学习总结 作者:csj更新时间:01.09 email:[email protected] 说明:因内容较多,会不断更新 xxx学习总结: #生成数组/使用astype/取值和赋值/ 数学运算 / 内置的创建数组的函数/ 文件输入输出 # Numpy是Python语言的一个library numpy # Numpy主要支持矩阵操作和运算 # Numpy非常高效,core代码由C语言写成 # pandas也是基于Numpy构建的一个library # 现在比较流行的机器学习框架(例如T

分享《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学习(让数据处理变简单)

NumPy学习(一) NumPy数组创建 NumPy数组属性 NumPy数学算术与算数运算 NumPy数组创建 NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型. 它描述相同类型的元素集合. 可以使用基于零的索引访问集合中的项目. ndarray中的每个元素在内存中使用相同大小的块. ndarray中的每个元素是数据类型对象的对象(称为 dtype). 从ndarray对象提取的任何元素(通过切片)由一个数组标量类型的 Python 对象表示. 它从任何暴露数组接口的对

NumPy学习(索引和切片,合并,分割,copy与deep copy)

NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片 合并 分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程序示例 import numpy as np #索引与切片 array=np.arange(3,15) print(array) print(array[3])#数组下标为3的元素 print('\n') print(array[1:3])#取从下标1到下标3,不包括下标3 print(array[

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

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