Numpy数组创建及索引_空气清新剂的博客-程序员信息网

技术标签: python  numpy  

这里写自定义目录标题


Numpy数组创建及索引

#(a)通过array()函数进行创建。
#创建一维数组
import numpy as np
a=np.array([0,1,2,3,4])
b=np.array((0,1,2,3,4))
print(a,type(a))
print(b,type(b))
#创建二维数组
c = np.array([[11, 12, 13, 14, 15],
              [16, 17, 18, 19, 20],
              [21, 22, 23, 24, 25],
              [26, 27, 28, 29, 30],
              [31, 32, 33, 34, 35]])
print(c, type(c))
#创建三维数组
d=np.array([[(1.5,2,3),(4,5,6)],
            [(3,2,1),(4,5,6)]])
print(d,type(d))



#(b)通过asarray()函数进行创建
#array() 和 asarray() 都可以将结构数据转化为 ndarray
import numpy as np
x=[[1,1,1],[1,1,1],[1,1,1]]
y=np.array(x)
z=np.asarray(x)
x[1][2]=2
print(x,type(x))
print(y,type(y))
print(z,type(z))


#array() 和 asarray() 的区别。( array() 和 asarray() 主要区别就是当数据源是ndarray 时, array() 仍然会 copy 出一个副
#本,占用新的内存,但不改变 dtype 时 asarray() 不会。)
import numpy as np
x=np.array([[1,1,1],[1,1,1],[1,1,1]])
y=np.array(x)
z=np.asarray(x)
w=np.asarray(x,dtype=np.int)
x[1][2]=2
print(x,type(x),x.dtype)
print(y,type(y),y.dtype)
print(z,type(z),z.dtype)
print(w,type(w),w.dtype)

#更改为较大的dtype时,其大小必须是array的最后一个axis的总大小(以字节为单位)的除数
import numpy as np
x = np.array([[1, 1, 1], [1, 1, 1], [1, 1, 1]])#int 32
print(x, x.dtype)
x.dtype=np.int16
print(x)

# (c)通过fromfunction()函数进行创建
#给函数绘图的时候可能会用到 fromfunction() ,该函数可从函数中创建数组。
#def fromfunction(function, shape, **kwargs):
#通过在每个坐标上执行一个函数来构造数组
import numpy as np
def f(x,y):
    return 10*x+y
x=np.fromfunction(f,(5,4),dtype=int)
print(x)
x=np.fromfunction(lambda i,j:i == j,(3,3),dtype=int)
print(x)
x=np.fromfunction(lambda i, j: i + j, (3, 3), dtype=int)
print(x)

import numpy as np
x = np.zeros(5)
print(x)
x = np.zeros([2, 3])
print(x)
x=np.array([[1,2,3],[4,5,6]])
y=np.zeros_like(x)
print(y)


import numpy as np
x = np.ones(5)
print(x)
x = np.ones([2, 3])
print(x)
x=np.array([[1,2,3],[4,5,6]])
y=np.ones_like(x)
print(y)

import numpy as np
x=np.empty(5)
print(x)
x=np.empty((3,2))
print(x)
x = np.array([[1, 2, 3], [4, 5, 6]])
y = np.empty_like(x)
print(y)

import numpy as np
x=np.eye(4)
print(x)
x=np.eye(2,3)
print(x)
x=np.identity(4)
print(x)

import numpy as np
x=np.arange(9).reshape((3,3))
print(x)
print(np.diag(x))
print(np.diag(x,k=1))
print(np.diag(x,k=-1))
v=[1,3,5,7]
x=np.diag(v)
print(x)


import numpy as np
x=np.full((2,),7)
print(x)
x=np.full(2,7)
print(x)
x=np.full((2,7),7)
print(x)
x=np.array([[1,2,3],[4,5,6]])
y=np.full_like(x,7)
print(y)


import numpy as np
x=np.arange(5)
print(x)
x=np.arange(3,7,2)
print(x)
x=np.linspace(start=0,stop=2,num=9)
print(x)
x=np.logspace(0,1,5)
print(np.around(x,2))#np.around 返回四舍五入后的值,可指定精度。
# around(a, decimals=0, out=None)
# a 输入数组 # decimals 要舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置
x=np.linspace(start=0,stop=1,num=5)
x=[10**i for i in x]
print(np.around(x,2))
x=np.random.random(5)
print(x)
x=np.random.random([2,3])
print(x)

#4.4.4 结构数组的创建
#(a)利用字典来定义结构
import numpy as np
personType=np.dtype({
    
    'names':['name','age','weight'],
    'formats':['U30','i8','f8']})
a=np.array([('Liming',24,63.9),('Mike',15,67.),('Jan',34,45.8)],
             dtype=personType)
print(a,type(a))


#(b)利用包含多个元组的列表来定义结构
import numpy as np
personType=np.dtype([('name','U30'),('age','i8'),('weight','f8')])
a=np.array([('Liming',24,63.9),('Mike',15,67.),('Jan',34,45.8)],
dtype=personType)
print(a,type(a))
# 结构数组的取值方式和一般数组差不多,可以通过下标取得元素:
print(a[0])
print(a[-2:])
# 我们可以使用字段名作为下标获取对应的值
print(a['name'])
print(a['age'])
print(a['weight'])

#数组的属性
import numpy as np
a=np.array([1,2,3,4,5])
print(a.shape)#表示数组的维度,返回一个元组,这个元组的长度就是维度的数目,即 ndim 属性(秩)
print(a.dtype)#对象的元素类型
print(a.size)#数组中所有元素的总量,相当于数组的 shape 中所有元素的乘积,例如矩阵的元素总量为行与列的乘积
print(a.ndim)# 用于返回数组的维数(轴的个数)也称为秩,一维数组的秩为 1,二维数组的秩为 2,以此类推。
print(a.itemsize)# 以字节的形式返回数组中每一个元素的大小。
b=np.array([[1,2,3],[4,5,6.0]])
print(b.shape)
print(b.dtype)
print(b.size)
print(b.ndim)
print(b.itemsize)

#在 ndarray 中所有元素必须是同一类型,否则会自动向下转换, int->float->str 。
import numpy as np
a=np.array([1,2,3,4,5])
print(a)
b=np.array([1,2,3,4,'5'])
print(b)
c=np.array([1,2,3,4,5.0])
print(c)

#6副本与视图
import numpy as np
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = x
y[0] = -1
print(x)
print(y)

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = x.copy()
y[0] = -1
print(x)
print(y)


#数组切片操作返回的对象只是原数组的视图
import numpy as np
x = np.array([[11, 12, 13, 14, 15],
              [16, 17, 18, 19, 20],
              [21, 22, 23, 24, 25],
              [26, 27, 28, 29, 30],
              [31, 32, 33, 34, 35]])
y=x
y[::2,:3:2]=-1
print(x)
print(y)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cyuyancaiji/article/details/109250848

智能推荐

keras报错:ValueError: Layer model_1 was called with an input that isn’t a symbolic tensor_Stanford6的博客-程序员信息网

keras报错:ValueError: Layer model_1 was called with an input that isn’t a symbolic tensor后面还有错误Received type: <class 'numpy.ndarray'>All inputs to the layer should be tensors.解决办法例如搭建了自定义的网络模型self.discriminator_layer1, 在调用时不能忘了加.predictself.dis

以太坊DApp开发:web3.js与智能合约交互_weixin_43250732的博客-程序员信息网

前言本文参考:https://blog.csdn.net/pony_maggie/article/details/79685942实现了最终的结果,并在其基础上做出了更加详细的说明与部分细节的完善,供读者参考。环境准备ubuntu 14.0.4(16.0.4), 64位还需要安装以太坊相关的环境:nodejstrufflesoliditytestrpc具体安装步骤可以参考...

出现UnboundLocalError: local variable 'a' referenced before assignment异常的情况与解决方法_DansonC的博客-程序员信息网

出现UnboundLocalError: local variable ‘a’ referenced before assignment异常的情况与解决方法字面意思:局部变量赋值前被引用原因:局部变量与全局变量同名例:a = 1def func(): a += 1 print(a)func()解决方法:1.使局部变量与全局变量不同名a = 1def func...

前端完整学习路线_weixin_30668887的博客-程序员信息网

第一阶段:HTML+CSS:HTML进阶、CSS进阶、div+css布局、HTML+css整站开发、JavaScript基础:Js基础教程、js内置对象常用方法、常见DOM树操作大全、ECMAscript、DOM、BOM、定时器和焦点图。JS基本特效:常见特效、例如:tab、导航、整页滚动、轮播图、JS制作幻灯片、弹出层、手风琴菜单、瀑...

table.render加入php传值,layui之table.render使用(含后台详细代码实现)_weixin_39867142的博客-程序员信息网

public class Problem extends Model{private static final long serialVersionUID = 1L;@TableId(value = "problem_id", type = IdType.AUTO)private Integer problemId;private String title;private String descr...

Mac 终端解压缩命令大全_chase…的博客-程序员信息网_mac解压指令

tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName———————————————.tar.gz 和 .tgz解压:tar zxvf FileName.tar.gz压缩:tar zcvf FileName.tar.gz DirName

随便推点

(debug)keras 报错:UserWarning: Update your `Model` call to the Keras 2 API: `Model(inputs=Tensor(“in.._weixin_44444347的博客-程序员信息网

如题,从keras导入model,使用时候出错。方法是把input改成inputs原来model_final = Model(input = vggmodel.input, output = predictions)修改后model_final = Model(inputs = vggmodel.input, outputs = predictions)

React调试工具:react-devtools_swpu_lwf的博客-程序员信息网

<!DOCTYPE html><html> <head <script src="../build/react.js"></script><!--react核心库--> <script src="../build/react-dom.js">&am

Theano Tutorial 构建一个多层感知器MLP_Full_Speed_Turbo的博客-程序员信息网

Theano是一款可以让你编写符号公式类型代码并编译为不同架构(特别是CPU和GPU)的 软件包。它是Montreal大学的机器学习研究者们开发的。它不但是机器学习的应用,而且是以机器学习的思想设计的。它特别擅长于CPU-intensive和并行计算的机器学习技术,例如大规模的神经网络。这一篇指导文章会涉及Theano的基本法则,包括一些不太容易理解的地方。也会涉及一个简单的多层感知器的例子。

二叉树_枳洛淮南✘的博客-程序员信息网_某二叉树

1. 树型结构1.1 概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:有一个特殊的节点,称为根节点,根节点没有前驱节点除根节点外,其余节点被分成M(M > 0)个互不相交的集合T1、T2、…、Tm,其中每一个集合 Ti (1 <= i <=m) 又是一棵与树类似的子树。每棵子树的根节点有且只有一个前驱,可以有0个或多个后继树是递归定义的。

Java 8:那些Java8的常见写法_zyqok的博客-程序员信息网

现在Java 13 都已经出来了,你是否连 Java 8 的一些常用写法还没搞明白?是否还在看着别人的 sao 代码一脸蒙蔽?如果是的话,别慌,看完这篇文章就差不多了!(1)Lamda 写法其语法形式为 () -> {},其中 () 用来描述参数列表,-> 为 lambda运算符 ,读作(goes to),{} 为方法体。(1.1)循环遍历:打印每个用户的具体信息Java 8 以前的写法:for (User user : users) { System.out.pri