前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >002.python科学计算库numpy(下)

002.python科学计算库numpy(下)

作者头像
qubianzhong
发布2018-09-19 12:55:12
4800
发布2018-09-19 12:55:12
举报
文章被收录于专栏:行者常至

版权声明:本文为博主原创文章,允许转载,请标明出处。 https://cloud.tencent.com/developer/article/1342934

reshape

代码语言:javascript
复制
import numpy as np

# arange 在给定的间隔内返回等距值
# reshape 返回一个包含具有新形状的相同数据的数组
a = np.arange(15).reshape(3, 5)
print(a)

arange

代码语言:javascript
复制
import numpy as np

# arange 在给定的间隔内返回等距值
print(np.arange(10, 30, 5))

reshape

代码语言:javascript
复制
import numpy as np

# reshape 返回一个包含具有新形状的相同数据的数组
a = np.arange(15).reshape(3, 5)
print(a)

数组常用属性

代码语言:javascript
复制
import numpy as np

a = np.arange(15).reshape(3, 5)
# 数组维数
print(a.ndim)
# 数组中元素的类型名称
print(a.dtype.name)
# 数组中总的元素数量
print(a.size)

数组初始化

代码语言:javascript
复制
import numpy as np
from numpy import pi

# 初始化一个数组,zeros的参数是元组
print(np.zeros((3, 4)))
print("---------")
# 初始化数组为1,并指定元素类型
print(np.ones((2, 3, 4), dtype=np.float))
print("---------")
# 返回一个指定空间的随机的(0到1)数组
print(np.random.random((2, 3)))
print("---------")
# 在0和2*pi之间平均切分出15个元素
print(np.linspace(0, 2 * pi, 15))

数组间算术运算

代码语言:javascript
复制
import numpy as np

a = np.array([20, 30, 40, 50])
b = np.arange(4)
# 数组之间空间大小相同可以进行算术运算
print(a - b)
print("----")
print(a * b)
print("----")
# 每个元素都进行乘法操作
print(b * 2)
print("----")
# 每个元素都进行指数操作
print(b ** 3)
print("----")
# 两个数组的点积 = np.sum(a * b)
print(a.dot(b))
print(np.sum(a * b))
print(np.dot(a, b))
print("----")

exp

代码语言:javascript
复制
import numpy as np

b = np.arange(5)
# 计算输入数组中所有元素的指数 e ** 元素的值
print(np.exp(b))

sqrt

代码语言:javascript
复制
import numpy as np

b = np.arange(5)
# 返回数组的非负平方根,按元素计算。
print(np.sqrt(b))

floor

代码语言:javascript
复制
import numpy as np

# 向下取整
a = np.floor(10 * np.random.random((3, 4)))
print(a)
print(a.shape)
print("-----")

ravel

代码语言:javascript
复制
import numpy as np

# 向下取整
a = np.floor(10 * np.random.random((3, 4)))
# 返回一个平坦矩阵
print(a.ravel())
print(a.ravel().shape)

resize/shape

代码语言:javascript
复制
import numpy as np

# 向下取整
a = np.floor(10 * np.random.random((3, 4)))
# 改变a的结构
a.shape = (6, 2)
print(a)
print("-----")
# 改变阵列的形状和大小
a.resize((2, 6))
print(a)
print("-----")
# a的转置矩阵
print(a.T)

hstack

代码语言:javascript
复制
import numpy as np

a = np.floor(10 * np.random.random((3, 3, 5)))
b = np.floor(10 * np.random.random((3, 3, 5)))
c = np.floor(10 * np.random.random((3, 5)))
d = np.floor(10 * np.random.random((3, 5)))
print("a=", a, "\n")
print("b=", b, "\n")
# 水平(按列排列)排列。它相当于沿着第二轴的连接
# 这个函数对于3维的数组最有意义。
# 例如,对于具有高度(第一轴)、宽度(第二轴)和r/g/b通道(第三轴)的像素数据。
# 函数“concatenate”、“stack”和“block”提供了更一般的堆叠和连接操作。
print("ab=", np.hstack((a, b)))
print("cd=", np.hstack((c, d)))

hsplit

代码语言:javascript
复制
import numpy as np

a = np.floor(10 * np.random.random((2, 12)))
print("a=", a)
print("------")
# 水平地将一个数组拆分为多个子数组(按列排列)。
# 请参考“split”文档。 'hsplit '相当于 np.split(axis=1),
# 数组总是沿着第二个轴分裂,而不管数组的大小。
print(np.hsplit(a, 3))
print("----")
# hsplit第二个参数是个元组的时候,表示split的索引列
# 下面这个就是在 列索引号为 3,5,8的地方进行拆分
print(np.hsplit(a, (3, 5, 8)))
print("----")
a = np.floor(10 * np.random.random((2, 2, 4)))
print("a=", a)
# hsplit的第二个参数,如果不是元组或者是一个参数的元组
# 此参数必须可以让数组的第1轴的维数整除
print(np.hsplit(a, 2))

=

代码语言:javascript
复制
import numpy as np

a = np.arange(12)
# 使用等号赋值,不同引用操作的地址相同
b = a
print(b)
print(b is a)
b.shape = (3, 4)
print(a.shape)
print(id(a), id(b))

view

代码语言:javascript
复制
import numpy as np

a = np.arange(12)
# view视图方法创建一个新的数组对象,该对象具有相同的数据
c = a.view()
print(c)
print(c is a)
print(a)
# a/b的地址不一样
print(id(a), id(c))
# 但是修改其中一个值之后,另一个也同步修改
c[3] = 333
print("a=", a)
a[6] = 666
print("c=", c)
c.shape = (3, 4)
c[0] = 0
print(a)

copy

代码语言:javascript
复制
import numpy as np

a = np.arange(12)
# copy返回数组的副本
d = a.copy()
print(d)
print(d is a)
d.shape = (3, 4)
print(id(a), id(d))
d[1] = 111
a[0] = 1000
# 修改任一值均不会影响另一个
print("a=", a)
print("d=", d)

argmax

代码语言:javascript
复制
import numpy as np

data = np.sin(np.arange(20)).reshape(5, 4)
print(data)
print(data.shape)  # (5, 4)
# 沿给定轴(第0轴)的最大值的返回索引,将返回shape=(4,)的数组
ind = data.argmax(axis=0)
print(ind, ind.shape)
# 沿给定轴(第1轴)的最大值的返回索引,将返回shape=(5,)的数组
ind = data.argmax(axis=1)
print(ind, ind.shape)

tile

代码语言:javascript
复制
import numpy as np

a = np.arange(0, 40, 10)
print(a, "\n")
# 通过重复代表给出的次数来构造数组。
b = np.tile(a, (1, 4))
print(b)

argsort

代码语言:javascript
复制
import numpy as np

a = np.array([4, 3, 1, 2])
# 返回对数组进行排序的索引。
# 最小的1索引为2,最大的4索引为0
b = np.argsort(a)  # [2 3 1 0]
print(b)
# 排序后的数组
print(a[b])
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年09月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • reshape
  • arange
  • reshape
  • 数组常用属性
  • 数组初始化
  • 数组间算术运算
  • exp
  • sqrt
  • floor
  • ravel
  • resize/shape
  • hstack
  • hsplit
  • =
  • view
  • copy
  • argmax
  • tile
  • argsort
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档