📜  在 Julia 中使用 Comprehensions 和 Generators 创建数组

📅  最后修改于: 2022-05-13 01:55:45.165000             🧑  作者: Mango

在 Julia 中使用 Comprehensions 和 Generators 创建数组

Julia 是一种为高级性能而设计的语言,也可以支持交互式使用。它具有许多描述性数据类型,并且类型声明可用于巩固程序。 Julia 正在慢慢爬升,并引起了当今许多数据科学家和机器学习科学家的兴趣。它比Python相对快,因为它旨在实现线性代数和矩阵表示等数学概念。非常适合数值计算,这种语言有多个用于定义数据类型(如数字和数组)的调度。

使用理解的数组

Julia 数组使用方括号 ([ ]) 进行列表推导,就像Python或 MATLAB 一样。它由三种数组组成。数组推导是一种非常强大的构造数组的方法。结果数组取决于构造时使用的数据类型。
句法:

[expression for element = iterable]


对于一维数组:

# Julia array using for loop
twice = []
for i in 1:5
    push!(twice, 2i)

也可以写出来,并且会给出相同的输出

# Using Comprehension
twice = [2x for x=1:5]

对于二维阵列:

# Creating 2D array using comprehension
  
u = [x + 2y for x in 1:5, y in 0:1]

对于 3-D 阵列:

# Creating 3D arrays using comprehension
  
p = [x + 2y + 3z for x in 1:4, y in 0:1, z in 1:3]

使用生成器的数组

这并不完全返回一个数组类型的数据结构,而是一个生成器类型的数据结构。它使用括号 '( )' 而不是列表推导中的方括号。 else 的语法与上面的语法非常相似。
可以在需要时迭代对象以产生值,而不是预先分配数组并存储它们。与上面的示例不同,下面的一系列数据没有分配任何内存。

句法:

(expression for element = iterable)


对于一维数组:

# Creating 1D Array using Generators
  
j = (2x for x = 1:5)

对于二维阵列:

# Creating 2D Arrays using Generators
u = (x + 2y for x in 1:5, y in 0:1)

对于 3-D 阵列:

# Creating 3D arrays using Generators
  
p = (x + 2y + 3z for x in 1:4, y in 0:1, z in 1:3)