小编Dub*_*bon的帖子

NumPy一次保存一些数组

我正在研究不同形状的数组,我想将它们全部保存起来numpy.save,所以,请考虑一下

mat1 = numpy.arange(8).reshape(4, 2)
mat2 = numpy.arange(9).reshape(2, 3)
numpy.save('mat.npy', numpy.array([mat1, mat2]))
Run Code Online (Sandbox Code Playgroud)

有用.但是当我有两个尺寸相同的矩阵时,它就不起作用了.

mat1 = numpy.arange(8).reshape(2, 4)
mat2 = numpy.arange(10).reshape(2, 5)
numpy.save('mat.npy', numpy.array([mat1, mat2]))
Run Code Online (Sandbox Code Playgroud)

它导致
Traceback (most recent call last): File "<input>", line 1, in <module> ValueError: could not broadcast input array from shape (2,4) into shape (2)

并注意问题引起的numpy.array([mat1, mat2])而不是由numpy.save

我知道这样的阵列是可能的:

>> numpy.array([[[1, 2]], [[1, 2], [3, 4]]]) array([[[1, 2]], [[1, 2], [3, 4]]], dtype=object)

因此,所有我想要的是两个数组保存为mat1mat2一次.

python arrays numpy

19
推荐指数
1
解决办法
2万
查看次数

一个接一个地迭代两个列表

我有两个列表list1list2数字,我想用相同的指令迭代它们.像这样:

for item in list1:
  print(item.amount)
  print(item.total_amount)

for item in list2:
  print(item.amount)
  print(item.total_amount)
Run Code Online (Sandbox Code Playgroud)

但这感觉多余.我知道我可以写for item in list1 + list2:,但它有运行时间的代价.

没有宽松的时间,有没有办法做到这一点?

python iteration loops list python-3.x

12
推荐指数
2
解决办法
8048
查看次数

Python-多线程-锁是否必须是全局的?

我是python中多线程的初学者。
我想在线程中使用锁定。是否必须在线程中将其声明为全局?我的代码如下所示:

i = 0
lock = threading.RLock()
def do_work():
  global i
  # global lock ?????????????
  while i < len(my_list):
    lock.acquire()
    my_i = i
    i += 1
    lock.release()
    my_list[my_i].some_works()

workers = [threading.Thread(target=do_work) for _ in range(8)]
for worker in workers:
  worker.start()
Run Code Online (Sandbox Code Playgroud)

python multithreading locking

6
推荐指数
1
解决办法
721
查看次数

NumPy计算向量范数2的平方

我有矢量a
我想计算np.inner(a, a)
但是我不知道是否有更漂亮的方法来计算它。

[这种方式的缺点是,如果我想针对a-b一个或更复杂的表达式进行计算,则必须多做一行。c = a - bnp.inner(c, c)不是somewhat(a - b)]

python numpy inner-product

4
推荐指数
3
解决办法
2万
查看次数